作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我试图使用 AES 算法加密数据。但是,发生了以下异常。
java.security.NoSuchAlgorithmException:
Cannot find any provider supporting AES/ECB/PKCS7PADDING
有人知道这个问题的解决方案吗?我的JDK版本是1.7。
最佳答案
您不想为分组密码使用指定 PKCS#7 填充。您要指定 PKCS#5 填充。 PKCS#5 被指定用于分组密码,而 PKCS#7 不是(它用于不同的地方,如在 S/MIME 中)。我会指出 PKCS#5 和 PKCS#7 实际上指定了完全相同的填充类型(它们是相同的!),但在这种情况下使用时它被称为 #5。 :)
因此,您需要 "AES/ECB/PKCS5PADDING"
而不是 "AES/ECB/PKCS7PADDING"
。这是一个密码实现,Java 平台的每个实现都需要支持。见 documentation of the Cipher
class了解更多详情。
关于java.security.NoSuchAlgorithmException :Cannot find any provider supporting AES/ECB/PKCS7PADDING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10193567/
我是一名优秀的程序员,十分优秀!