我正在尝试使用AES在Java中加密一些数据
到目前为止,我已成功使用128位密钥加密数据。
对于256位加密,我需要更改我的策略文件,这对我来说不是一个选项
我也提到了this SO Q / A.
试过BouncyCastle,但似乎他们没有任何256位密钥的规定(
第一个问题
here
)
看看JNCryptor。但不知道它是否是一个好的来源。(BouncyCastle是由 FIPS 批准的)
此外, Reflection 不是一个选项,因为它违反了JAVA许可协议。
因此,如果有人可以引导我查看相关问题或分享可能的解决方案,我会很高兴。
答案 0 :(得分:0)
128位AES密钥没有任何错误或不安全因素,它不是强制性的。 256位不再提供安全性,成功的攻击将在另一个区域。
要确保密钥的质量,使用加密安全随机数生成器(CSPRNG)或使用PBKDF2从非常好的密码派生密钥。
正确验证加密:加密然后MAC。
在CBC模式下使用随机IV,不报告填充错误。