javax.crypto.Cipher为RSA使用了哪个填充
我需要通过RSA解密消息,以便通过不安全的通道发送消息,但我害怕
Padding Oracle Attack.因此我已经问过以下问题:
> How to verify the integrity of RSA encrypted messages? 像第一个问题中建议的那样,
我不应该考虑.据我所知,PKCS#1 v1.5的RSA实现容易受到Padding Oracale攻击,因此OAEP不是(假设它已正确实现) 因此,我想知道Java 7的javax.crypt.Cipher使用了哪个填充实现 解决方法
它取决于所选择的或默认的提供程序,当您实例化一个密码而没有完全限定它时,实际使用哪个填充:
Cipher.getInstance("RSA") 这样做是一种不好的做法,因为如果你切换Java实现,可能会有不同的默认值,突然间,你将不再与旧的密文兼容.始终完全符合密码. 正如我之前所说,默认可能(有许多提供商,一个不能确定)是PKCS#1 v1.5填充.如果您需要另一个,则必须指定它.如果您想使用OAEP,这里是一个来自here的完全限定的密码字符串: Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |