简体   繁体   中英

java.security AES encryption key length

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.

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM