node新手一个关于aes128加密的问题

下面这段代码在node中要怎么写呢?

$cipher = base64_encode(openssl_encrypt(json_encode($param), 'aes-128-cbc', hash('MD5', $aesKey, true), OPENSSL_RAW_DATA, $iv));

我的代码是这样的,但是发现结果并不一样。。。。

const hash = crypto.createHash( 'MD5' )
hash.update( aesKey )
const aesKeySignStr = hash.digest()
const iv = Math.random().toString( 36 ).substr( 2 )

const cipher = crypto.createCipher( 'aes-128-cbc', aesKeySignStr, iv )
console.log( JSON.stringify( this.params ) );
let crypted = cipher.update( JSON.stringify( this.params ), 'utf8', 'hex' )
crypted += cipher.final( 'hex' )

请各位大佬搭救。

牧羊人nacy
浏览 487回答 2
2回答

忽然笑

node不太懂,但我猜可能是这样的因为初始向量和秘钥都是要跟分块大小保持一致,也就是说你用cbc-128,那么二者的大小都是16个字节但看你的代码显然不是这样

喵喔喔

结果不一样。那你把每个过程中的值都打印出来看一下啊。造成不一样的原因就两个,1。算法不同,2。初始值不同
打开App,查看更多内容
随时随地看视频慕课网APP