我正在尝试使用 RSA 算法解密数据。在进行解密时,我遇到了一个异常。也就是说,
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/ECB/PKCS5Padding
at javax.crypto.Cipher.getInstance(DashoA13*..)
如何解决这个异常?目前,我正在使用java version "1.6.0_26"
.
我正在尝试使用 RSA 算法解密数据。在进行解密时,我遇到了一个异常。也就是说,
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/ECB/PKCS5Padding
at javax.crypto.Cipher.getInstance(DashoA13*..)
如何解决这个异常?目前,我正在使用java version "1.6.0_26"
.
这是一个错字。带有 PKCS #1 v1.5 填充的 RSA 的正确名称是“RSA/ECB/PKCS1Padding”。通常,与可用算法列表进行比较是个好主意。例如,这个问题包含一些打印此类列表的方法。
(当然,使用 OAEP 而不是 v1.5 填充会更好,特别是如果您的主要领域不是密码学)。
该错误意味着您使用的库无法解密数据,因为 Lib 中没有解密 RSA 的算法。您可以使用像 Bouncy Calste 或 GNU Crypto 这样的库来使用 RSA 解密数据。网上有很多关于如何做到这一点的示例。