不更改策略文件的Java AES-256加密

不更改策略文件的Java AES-256加密,java,encryption,aes,jce,policyfiles,Java,Encryption,Aes,Jce,Policyfiles,我正在尝试用java中的AES加密一些数据。 到目前为止,我已经成功地用128位密钥加密了数据。 对于256位加密,我需要更改策略文件,这不是我的选项。 我也提到过Q/A。 尝试过,但似乎他们没有任何256位密钥的规定( 第一项问题 ). 看了一眼。但不知道这是否是一个好的来源。(BouncyCastle是由FIPS批准的) 此外,反射也不是一个选项,因为它违反了JAVA许可协议。 因此,如果有人能引导我找到相关问题或分享可能的解决方案,我会很高兴。128位AES密钥没有任何错误或不安全之处,

我正在尝试用java中的AES加密一些数据。
到目前为止,我已经成功地用128位密钥加密了数据。

对于256位加密,我需要更改策略文件,这不是我的选项。
我也提到过Q/A。
尝试过,但似乎他们没有任何256位密钥的规定( 第一项问题 ).
看了一眼。但不知道这是否是一个好的来源。(BouncyCastle是由FIPS批准的)

此外,反射也不是一个选项,因为它违反了JAVA许可协议。

因此,如果有人能引导我找到相关问题或分享可能的解决方案,我会很高兴。

128位AES密钥没有任何错误或不安全之处,它不是暴力的。256位不会提供更多的安全性,成功的攻击将发生在另一个区域

要确保的是密钥的质量,使用加密安全的随机数生成器(CSPRNG)或使用PBKDF2从一个非常好的密码派生密钥

正确验证加密:加密,然后MAC


在CBC模式下使用random IV,不要报告填充错误。

考虑重写代码以不使用Java Crypto provider API,并直接使用bouncycastle API,例如。这将删除对策略文件的检查。一些类似的东西。@Henrik谢谢你花时间。我没有使用JavaAPI进行加密操作。只是Bouncy castle不支持没有afaik策略文件的256位加密。该常见问题解答仅指通过加密提供程序API使用BC。看看我在前面的评论中提供的示例,尝试将
cipher.init
中的密钥大小从128更改为256。这将不受策略文件的影响。我的最佳选择是使用。酷。我会尽力让你知道的。谢谢你哇。。谢谢你的回答。问题是,当前加密的行业标准是256位密钥的AES。这也是我的项目的要求。不管怎样,我每次都使用随机会话密钥。这是行业标准吗?自2016年1月29日起,4.2.2.1 AES使用128、192或256位密钥对128位块中的数据进行加密和解密。所有三种关键尺寸都被认为适合联邦政府的应用。AES-128可压缩为RSA 3072。注意:256位密钥的一个原因是在量子计算机中,密钥仍具有256位安全性。OTOH、RSA和EC将完全崩溃。哦,具有所需功能的量子计算机可能永远都不可用,在我们的有生之年更不划算是的,所以昨晚读了很多关于这方面的文章。AES-128只有在拥有强大的计算能力(使用量子计算机)时才能被破坏。此外,如果任何方法被设置为破坏AES-128,它也可能破坏AES-256。AES-256在业界大肆宣传。主要用作卖点(越大对客户越好)。感谢您澄清此问题。我正在研究的产品有专门使用AES-256的要求。