正在尝试解密编码的字符串(实际上是使用bouncyCastle提供程序在Java中编码的)。因为我没有在nodejs中看到“ PBEWITHSHA256AND256BITAES-CBC-BC”的等效算法。您能否建议我如何在Node.js中解密cryptocurrencyValue(已在Java中加密)。
我尝试了几种方法,但是找不到解决方法。
从Java: 下面是方法
我们以十六进制字符串形式返回结果。
从Nodejs: 我试图使用nodejs-crypto软件包进行解密。
有人可以建议我采用这种方法吗?
答案 0 :(得分:0)
该PBE方案不是PBKDF2(PKCS8)的实例;它是PKCS12 PBE方案的一个实例,该方案在概念上相似,但在细节上有很大不同,这在加密中至关重要。您可以通过查找OID来“轻松”地告诉这一点:https://www.bouncycastle.org/oids.html:-)
我看不到任何提示,表明nodejs-crypto公开了此方案或PKCS12,尽管它内部使用了同时实现这两种方案的OpenSSL。
您可以按照RFC 7292 Appendix B and C中的规范进行编码(实际上,即使文档中已弃用该规范,该规范仍在广泛使用)。
或者,https://github.com/digitalbazaar/forge(纯js)确实使用未提及的(内部)模块forge.pbe.generatePkcs12Key
(实际上是键和 IV)支持PKCS12,该模块很快对我来说是正确的扫描(但未经测试)。