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就一样的。
相关推荐
-
MySQL 中的反斜杠 \\,真是太坑了2025-04-21 01:42:45
-
mysql修改主键为自增 ,如果自增达到最大值,新增加数据会怎样?
mysql修改主键为自增 ,如果自增达到最大值,新增加数据会怎样?2025-04-21 01:31:46 -
Nginx学习笔记 autoindex on2025-04-21 00:26:47
-
.MySQL中的BETWEEN(在某个范围)2025-04-21 00:04:20
-
nginx设置目录浏览并支持中文2025-04-21 00:00:35