为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
牧羊人nacy 2019-03-15 22:40:19
下面这段代码在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' ) 请各位大佬搭救。
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-03-18
?
喵喔喔

TA贡献1735条经验 获得超5个赞

结果不一样。那你把每个过程中的值都打印出来看一下啊。造成不一样的原因就两个,1。算法不同,2。初始值不同

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 486 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信