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

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

对于key,需要 substr(openssl_digest(openssl_digest($key,'sha1',true),'sha1',true),0,16), 这样出来的key才能与java的相通
而对于 nodejs 开发者来说》》


Buffer.from(crypto.createHash('sha1').update(crypto.createHash('sha1').update(key).digest('buffer')).digetst('hex').substring(0,32),'hex'); 之后用这个生成的key加密出来的值与java就一样的。
相关推荐
-
第18问:MySQL CPU 高了,怎么办?2025-02-24 10:27:18
-
mysql索引类型 normal, unique, full text
mysql索引类型 normal, unique, full text2025-02-24 10:05:05 -
uwsgi+django+nginx 搭建部分总结2025-02-24 10:03:33
-
使用Docker配置Nginx环境部署Nextcloud2025-02-24 10:02:03
-
Nginx安装和怎么使用2025-02-24 10:00:45