AES 256 32字节密钥加密/解密Java
我需要使用带有32字节密钥的AES 256加密XML消息(它以字符串形式出现)。我(从)尝试了以下方法: 我尝试将键数组长度从16更改为32,并使用了更大的输入字符串AES 256 32字节密钥加密/解密Java,java,xml,encryption,cryptography,aes,Java,Xml,Encryption,Cryptography,Aes,我需要使用带有32字节密钥的AES 256加密XML消息(它以字符串形式出现)。我(从)尝试了以下方法: 我尝试将键数组长度从16更改为32,并使用了更大的输入字符串 (我认为这是32个长度键)但这不起作用 要加密的消息将非常简单: <Estructure> <General>GENERAL DATA</General> </Estructure> <Datos> <DATE>20140606</DATE&
(我认为这是32个长度键)但这不起作用 要加密的消息将非常简单:
<Estructure>
<General>GENERAL DATA</General>
</Estructure>
<Datos>
<DATE>20140606</DATE>
</Datos>
一般数据
20140606
当我运行该命令时,会出现以下异常:
加密时出错:java.security.InvalidKeyException:密钥大小或默认参数非法
当使用16字节长度键时,它可以完美地工作。如何使其使用32字节?默认情况下,JVM中禁用任何高于128位的加密,因为Oracle是在美国管辖下运行的
如果您需要128位以上的加密,您必须下载jar文件并将其放入您的JRE/JDK这里有问题吗?“它不起作用”是不可接受的。你们得到了什么样的异常?在什么地方?后编辑。我在尝试使用256位密钥(32字节)时遇到异常。但当使用128位(16字节)时,同样的代码可以完美地工作。我怎样才能解决这个问题?非常感谢!!我要试试看!这为我解决了问题。但我必须从[1]下载[Java加密扩展(JCE)无限强度权限策略文件7]:
key = Arrays.copyOf(key, 32);
<Estructure>
<General>GENERAL DATA</General>
</Estructure>
<Datos>
<DATE>20140606</DATE>
</Datos>