java aes-128-cbc密钥加SHA1PRNG加密,php&nodejs如何生成一样密钥

内容分享1周前发布
0 0 0

本人从毕业开始到目前8年时间,服务了三家公司,第一家1年,第二家4年,第三家创业,目前是第四家,在服务的三家公司里学习了java php nodejs ,对于对接不同开发语言的加密有挺深的了解,今天主要说明下aes-128-cbc中加密,java开发者习惯在key中添加sha1prng加密,上代码

第一是java开发者

java aes-128-cbc密钥加SHA1PRNG加密,php&nodejs如何生成一样密钥

将密钥传入之后,会调用 SecureRandom.getInstance('SHA1PRNG'),如果其它语言开发者对接的时候,给个16的密钥,结果加密结果是不一样的,这时候对于php开发者应该要这么编写 》》

java aes-128-cbc密钥加SHA1PRNG加密,php&nodejs如何生成一样密钥

对于key,需要 substr(openssl_digest(openssl_digest($key,'sha1',true),'sha1',true),0,16), 这样出来的key才能与java的相通

而对于 nodejs 开发者来说》》

java aes-128-cbc密钥加SHA1PRNG加密,php&nodejs如何生成一样密钥

java aes-128-cbc密钥加SHA1PRNG加密,php&nodejs如何生成一样密钥

Buffer.from(crypto.createHash('sha1').update(crypto.createHash('sha1').update(key).digest('buffer')).digetst('hex').substring(0,32),'hex'); 之后用这个生成的key加密出来的值与java就一样的。

希望这篇文章对目前主流语言开发者都有所协助

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...