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

发布于 2022-09-07 07:52:42 字数 651 浏览 26 评论 0

下面这段代码在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' )

请各位大佬搭救。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

揽清风入怀 2022-09-14 07:52:42

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

邮友 2022-09-14 07:52:42

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文