1. 异常现象
使用AES进行加密时,报了一个异常:InvalidKeyException: Invalid AES key length: 12 bytes
java.security.InvalidKeyException: Invalid AES key length: 12 bytes
at com.sun.crypto.provider.AESCipher.engineGetKeySize(AESCipher.java:509)
at javax.crypto.Cipher.passCryptoPermCheck(Cipher.java:1067)
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1038)
at javax.crypto.Cipher.implInit(Cipher.java:805)
at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
at javax.crypto.Cipher.init(Cipher.java:1396)
at javax.crypto.Cipher.init(Cipher.java:1327)
at com.wei.common.utils.AESUtil.aes(AESUtil.java:46)
at com.wei.common.utils.AESUtil.encrypt(AESUtil.java:30)
at com.wei.common.utils.AESUtil.main(AESUtil.java:19)
2. 排查分析
异常信息:无效的AES密钥长度:12字节
由于AES的秘钥规定是16位秘钥,这里写成了12位,所以异常了。
3. 解决方案
把自己定义的AES秘钥改成规定的16位长度即可。