我曾经吃过亏,发现在 Oracle 的 Java 标准加密提供程序中
Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
使用实例化为SHA-1的MFG1; 在实践中,仅用于哈希标签的是SHA-256(通常为空)。我发现实际使用SHA-256在MFG1中唯一的解决方案是使用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?