Run | How To Use | Generate AES-256 Key | View AES-256 Key | Command Line Encrypt/Decrypt
This is a sample utility to encrypt/decrypt using AES/CBC/PKCS5Padding algorithm
Most common error: "Invalid Key Size" error is most likely caused by not updating JCE strength policy, see above
NOTE: This example is built using JDK7, ultimate strength JCE (JDK7) and Maven 3.x
- Unlimited Strength Policy JDK7
- JDK must have the unlimited strength policy for the JDK version
mvn clean test
Run | How To Use | Generate AES-256 Key | View AES-256 Key | Command Line Encrypt/Decrypt
# Key stored in JCEKS formatted Java keystore
Key key = ....; // see tests pulling key from keystore
// alternative is to hard-code key in string
AESCipher cipher = new AESCipher(key);
String encryptedMessage = cipher.getEncryptedMessage("this is message");
String decryptedMessage = cipher.getDecryptedMessage(encryptedMessage);
AESCipher cipherWithIv = new AESCipher(key, "0123456789012345".getBytes());
String encryptedMessage = cipherWithIv.getEncryptedMessage("this is message");
String decryptedMessage = cipherWithIv.getDecryptedMessage(encryptedMessage);
Run | How To Use | Generate AES-256 Key | View AES-256 Key | Command Line Encrypt/Decrypt
keytool -genseckey -alias jceksaes -keyalg AES -keysize 256 -storetype JCEKS -keypass mykeypass -storetype jceks -keystore aes-keystore.jck -storepass mystorepass
Run | How To Use | Generate AES-256 Key | View AES-256 Key | Command Line Encrypt/Decrypt
mvn clean package // generate executable JAR file
java -Dkeystore=main-aes-keystore.jck -Dstorepass=mystorepass -Dalias=jceksaes -Dkeypass=mykeypass -jar target/example-encryption-util.jar <COMMAND like 'showKey'>
// or optionally with Maven (using the above defaults)
mvn exec:java
Run | How To Use | Generate AES-256 Key | View AES-256 Key | Command Line Encrypt/Decrypt
// Generate executable JAR with: mvn package
// Ideally the IV passed in (0000000000000000) would be randomly generated
java -Dkeystore=main-aes-keystore.jck -Dstorepass=mystorepass -Dalias=jceksaes -Dkeypass=mykeypass -jar target/example-encryption-util.jar encrypt blahblahblah 0000000000000000
java -Dkeystore=main-aes-keystore.jck -Dstorepass=mystorepass -Dalias=jceksaes -Dkeypass=mykeypass -jar target/example-encryption-util.jar decrypt baN3CIAcVgq+AQr7lvKmLw== 0000000000000000
java -Dkeystore=main-aes-keystore.jck -Dstorepass=mystorepass -Dalias=jceksaes -Dkeypass=mykeypass -jar target/example-encryption-util.jar encrypt blahblahblah 0000000000000001
java -Dkeystore=main-aes-keystore.jck -Dstorepass=mystorepass -Dalias=jceksaes -Dkeypass=mykeypass -jar target/example-encryption-util.jar decrypt Wcaov8LNN4GJvp1bvOTJ0g== 0000000000000001
Run | How To Use | Generate AES-256 Key | View AES-256 Key | Command Line Encrypt/Decrypt
Copywrite ©2013 - Use of this code and it's concepts are considered a Proof-of-concept and should not be used directly in any environment