How to decrypt the encrypted password using Jasypt library?
package com.uk.mysqlmaven.jsf.test;
import org.jasypt.util.password.StrongPasswordEncryptor;
import org.jasypt.util.text.StrongTextEncryptor;
public class PasswordEncryptionDecryptionUsingJASYPT {
public static void main(String[] args) {
try {
String password = "password";
StrongPasswordEncryptor encryptor = new StrongPasswordEncryptor();
String encryptedPassword = encryptor.encryptPassword(password);
if (encryptor.checkPassword(password, encryptedPassword)) {
//correct
System.out.println("Encrypted: "+ encryptedPassword);
} else {
//bad again
System.out.println("Error: ");
}
StrongTextEncryptor textEncryptor = new StrongTextEncryptor();
textEncryptor.setPassword(encryptedPassword);
String decryptedPassword = textEncryptor.decrypt(encryptedPassword);
System.out.println("Decrypted: "+ decryptedPassword);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Error is displayed in console when trying to decrypt the password:
Encrypted: JIOYXNa1+3+QefY2S7sas7LmhyOuDQcG8TTsQoTkqj0OtobCvwAFHXxoTr7z6HuP
org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.handleInvalidKeyException(StandardPBEByteEncryptor.java:999)
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:976)
at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:725)
at org.jasypt.util.text.StrongTextEncryptor.decrypt(StrongTextEncryptor.java:118)
at com.uk.mysqlmaven.jsf.test.PasswordEncryptionDecryptionUsingJASYPT.main(PasswordEncryptionDecryptionUsingJASYPT.java:22)
You can try the below example. This will work for you: Please always keep mpCryptoPassword value very secret location, only application should be able to read that.
public class EncryptionDecryptionUsingJASYPT {
private static String mpCryptoPassword = "BornToFight";
public static void main(String[] args) {
String value = "Original Text: Eclipse";
System.out.println("Original Value : "+value);
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword(mpCryptoPassword);
String encryptedPassword = encryptor.encrypt(value);
System.out.println(encryptedPassword);
StandardPBEStringEncryptor decryptor = new StandardPBEStringEncryptor();
decryptor.setPassword(mpCryptoPassword);
System.out.println(decryptor.decrypt(encryptedPassword));
}
}