java.security AES encryption key length

17,118

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

Share:
17,118

Related videos on Youtube

Cacheing
Author by

Cacheing

Updated on September 14, 2022

Comments

  • Cacheing
    Cacheing over 1 year

    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.

  • Cacheing
    Cacheing over 10 years
    But I download the jar files from oracle.com/technetwork/java/javase/downloads/…, and put it under ${java.home}/lib/security/, still got the exception.
  • Cristian Meneses
    Cristian Meneses over 10 years
    Yes, all you need to do is to put those jar files on the lib/security dir of the JRE which is running the java program
  • Matthew Farwell
    Matthew Farwell over 10 years
    @Cacheing Make sure they go in ${java.home}/jre/lib/security, not as you said above ${java.home}/lib/security
  • peter
    peter over 8 years
    @Christian The key size is limited to 128 bits not bytes.