java (jasypt) 中的加密和 nodejs 中的解密
Encryption in java (jasypt) and decryption in nodejs
我正在尝试解密编码字符串(实际上是使用 bouncyCastle 提供程序在 java 中编码的)。因为我在 nodejs 中没有看到 "PBEWITHSHA256AND256BITAES-CBC-BC" 的任何等效算法。你能建议我如何在nodejs中解密encryptedValue(在java中加密)吗?
我尝试了几种方法,但找不到解决方案。
来自 Java:
下面是方法
- bouncyCastle 提供商
- 算法# PBEWITHSHA256AND256BITAES-CBC-BC
- encodedOutputType 为 "Hex"
我们得到了十六进制字符串形式的结果。
来自 Node.js:
我尝试使用 nodejs-crypto 包解密。
- 从十六进制字符串转换回数组值
- 使用 pbkdf2sync 通过 sha256 创建密钥
- 尝试使用crypto.createDecipherIv解密数据
但不知何故我无法在nodejs中解密。
有人可以给我建议方法吗。
该 PBE 方案不是 PBKDF2 (PKCS8) 的实例;它是 PKCS12 PBE 方案的一个实例,它在概念上相似,但在加密中至关重要的细节上有很大不同。您可以 'easily' 通过查找 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,这看起来是正确的给我快速扫描(但未测试)。
我正在尝试解密编码字符串(实际上是使用 bouncyCastle 提供程序在 java 中编码的)。因为我在 nodejs 中没有看到 "PBEWITHSHA256AND256BITAES-CBC-BC" 的任何等效算法。你能建议我如何在nodejs中解密encryptedValue(在java中加密)吗?
我尝试了几种方法,但找不到解决方案。
来自 Java: 下面是方法
- bouncyCastle 提供商
- 算法# PBEWITHSHA256AND256BITAES-CBC-BC
- encodedOutputType 为 "Hex"
我们得到了十六进制字符串形式的结果。
来自 Node.js: 我尝试使用 nodejs-crypto 包解密。
- 从十六进制字符串转换回数组值
- 使用 pbkdf2sync 通过 sha256 创建密钥
- 尝试使用crypto.createDecipherIv解密数据 但不知何故我无法在nodejs中解密。
有人可以给我建议方法吗。
该 PBE 方案不是 PBKDF2 (PKCS8) 的实例;它是 PKCS12 PBE 方案的一个实例,它在概念上相似,但在加密中至关重要的细节上有很大不同。您可以 'easily' 通过查找 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,这看起来是正确的给我快速扫描(但未测试)。