cas*_*orz 5 java encryption aes
我被告知使用AES256加密一些表格数据(字符串),并给了一个很好的库,已经完成了所有这些.我只是想确保我更好地理解它并学习一些关于加密的知识,因为它不是我喜欢的东西.在我这样做的时候,我在一些网站上看到了一个测试,它说要调用它Cipher.getMaxAllowedKeyLength("AES")来为你提供最大的密钥长度.结果是128.
无论如何,最大允许密钥长度是128,这是否意味着我不能使用AES256?还是那些无关的?
编辑:我应该提到我知道如何获得无限制的政策文件来改变这一点,我只是想在继续之前更好地理解整个交易.
正是出于这个目的而引入的,否则您将必须在加密/解密操作(和)getMaxAllowedKeyLength()期间处理异常以测试限制是否适用。由于策略文件可能会随着时间的推移或针对不同的 Java 版本而发生变化,因此使用方法进行测试会更容易。CipherupdatedoFinal
请注意,getMaxAllowedKeyLength()除了测试限制之外,不应将其用于任何其他原因。值得注意的是,它很可能返回Integer.MAX_VALUE而不是有效的密钥大小。
当然,如果它返回 128,您就不能使用密钥大小为 256 的 AES。
为了解决这个问题,您需要安装Oracle JRE / JDK 的无限强度管辖策略文件,然后将其复制到您想要使用更大密钥大小的所有 Java 安装的( jre)文件夹中。/lib/security您可以覆盖已经存在的文件。您可能需要该文件夹的本地管理员权限或类似权限才能执行此操作。
如果这是不可能的,您可以使用不需要该类的另一种 AES 实现,Cipher因为该类实际上强制执行了限制。围绕这个问题也有一些技巧。
| 归档时间: |
|
| 查看次数: |
3158 次 |
| 最近记录: |