【发布时间】:2018-12-18 14:10:41
【问题描述】:
数据解密将使用RSA/ECB/OAEPWithSHA-256AndMGF1Padding算法在JAVA中运行。所以我必须使用等效于node.js 中的RSA/ECB/OAEPWithSHA-256AndMGF1Padding 的算法使用公钥加密数据。
我尝试了crypto.publicEncrypt(key, buffer),它使用了与上述算法不相似的crypto.constants.RSA_PKCS1_OAEP_PADDING。
所以我需要等效于“RSA/ECB/OAEPWithSHA-256AndMGF1Padding”的算法或如何在node.js中实现相同的算法
【问题讨论】:
-
你的问题是什么?
-
我没有找到任何关于节点用于 OAEP 的哈希函数的文档。这意味着它 1) 可能将 SHA1 用于 MGF1 哈希和常量哈希,并且 2) 无法更改它。您必须修改您的 Java 才能使用 SHA1。
-
@JamesKPolk+ 根据stackoverflow.com/questions/35544547/… 和stackoverflow.com/questions/33532091/… node-forge(而不是 node-crypto)可以选择 OAEP 哈希。 OP:您在 Java 中使用什么提供程序,或者您使用的是
OAEPParameterSpec? IIRC Suncle/Open 提供者和 BouncyCastle 提供者默认 'MGF1with$hash' 不同。 -
@dave_thompson_085:谢谢,这是很好的信息。在this 的回答中,我的结论是,Bouncycastle 使用转换字符串中指定的哈希算法作为两个哈希值,而 Suncle 使用指定的哈希值作为常量,并始终使用 SHA1 作为 MGF1 哈希值。
标签: java node.js encryption cryptojs