java.security AES encryption key length

2020-07-20 04:35发布

When the key length is 128 bits,everything works. But I got the following exception when I use a key of length 192 or 256 bits.

java.security.InvalidKeyException: Illegal key size or default parameters
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)

I found this Java Security: Illegal key size or default parameters?. But after I download the jar files and put it in ${java.home}/lib/security/, I still got the same exception.

2条回答
Deceive 欺骗
2楼-- · 2020-07-20 05:14

Java comes with a default maximum strength of 128 bits.

What you need is a set of files called Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files and is currently available at the Java SE download page. This zip file contains a couple of policy jars, which you need copy over the top of the ones already in the {java.home}/jre/lib/security directory of your JRE.

This will let you change the key strength above 128 bits

查看更多
冷血范
3楼-- · 2020-07-20 05:24

What Java implementation are you using?

If you look at the docs (like here), you can see that they might only support specific key lengths. This one only supports 128 bit.

查看更多
登录 后发表回答