我在Oracle的Java标准加密提供程序中发现了困难的方法
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
使用以SHA-1实例化的MFG1;SHA-256仅用于对标签进行哈希处理(实际上是空的)。我发现在MFG1中实际使用SHA-256的唯一解决方案(得到该答案和注释的帮助)是使用以下替代形式Cipher.init:
cipher.init(Cipher.DECRYPT_MODE, privKey, new OAEPParameterSpec(
"SHA-256", "MGF1", MGF1ParameterSpec.SHA256, PSource.PSpecified.DEFAULT
));
问:有没有转变是Cipher.getInstance
会认识到,与类似的效果"RSA/ECB/OAEPWithSHA-256AndMGF1Padding"
,除了与MGF1使用SHA-256?
不,没有。
Java是开源的。如果不确定,则可以查看OpenJDK的源代码。
在它的init
方法中com.sun.crypto.provider.RSACipher
读取:
spec = new OAEPParameterSpec(oaepHashAlgorithm, "MGF1",
MGF1ParameterSpec.SHA1, PSource.PSpecified.DEFAULT);
我已经检查了OpenJDK的Java 8 update 60。如您所见,您需要使用算法参数。
问题内容: Java有一种称为的模式。那有什么意思? RFC3447, 公开密钥密码标准(PKCS)#1:RSA密码规范2.1版 ,第 7.1.2 节 解密操作 说,哈希和MGF都是RSAES-OAEP- DECRYPT的选项。MGF是它自己的功能,在 B.2.1节MGF1中 定义,并且还具有自己的哈希“选项”。 也许RSAES-OAEP- DECRYPT和MGF1中的哈希“选项”应该是相同的,或
问题内容: 数据解密将使用算法在JAVA中运行。因此,我必须使用等效于中的算法使用公开密钥加密数据。 我尝试使用与上面的算法不相似的crypto.constants.RSA_PKCS1_OAEP_PADDING。所以我需要等效于“ RSA / ECB / OAEPWithSHA-256AndMGF1Padding”的算法,或者如何在node.js中实现相同的算法 问题答案: 我终于找到了答案。可以
问题内容: 我的应用程序正在访问e-Token来解密来自服务器的响应 来自服务器的会话密钥使用以下方法加密: RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING 我正在使用SunPKCS11 Provider来实现对加密令牌的访问。每当我尝试使用上述机制解密此文件时,即使用 RSA / ECB / OAEPWITHSHA-256ANDMGF1PADDING, 我都会
问题内容: Java有一种称为的模式RSA/ECB/OAEPWithSHA-256AndMGF1Padding。那有什么意思? RFC3447,公开密钥密码标准(PKCS)#1:RSA密码规范2.1版,第7.1.2节解密操作说,哈希和MGF都是RSAES-OAEP-DECRYPT的选项。MGF是它自己的功能,在B.2.1节MGF1中定义,并且还具有自己的Hash“选项”。 也许RSAES-OAEP
我通常会在这里找到我们大部分问题的答案,但这次我需要问:-)。 我们在Android 8.0(API级别26)上运行的一个应用程序中遇到了RSA加密/解密问题。 我们一直在将RSA与“RSA/ECB/OAEPWithSHA-256AndMGF1Padding”一起使用,这在Android 7.1之前的所有版本上都能正常工作。在Android 8.0上运行的同一代码在调用Cipher时引发了非法Bl