这个问题在这里已有答案:
我需要使用带有32字节(256位)密钥和16字节(128位)初始化向量(IV)的AES-256对固定和变长文本字符串执行对称密钥加密 . 我能够使用16字节(128位)密钥和16字节IV成功加密,我可以找到许多支持这种方法的代码片段 . 文档建议支持一个32字节的密钥,但每次尝试都会遇到'java.security.InvalidKeyException:非法的密钥大小异常' . 我在Java 1.8.0_74上,我已经验证了'local_policy.jar'和'US_export_policy.jar'文件的存在 . 具体来说,我尝试使用Java Cryptography Extension(JCE)中的最新版本更新它们但没有成功 . 这在Java中可行吗?我是否正确定义了转换算法?我缺少什么?
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;