Friday, May 15, 2015

Encrypt and Decrypt String with Key

public class EncryptorUtil {

private static String paramKey = "1234567890123456";
public static String encrypt(String key, String value) {
   try {
       IvParameterSpec iv = new IvParameterSpec(paramKey.getBytes("UTF-8"));

       SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"),
                   "AES");
       Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
       cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
       byte[] encrypted = cipher.doFinal(value.getBytes());
           return Base64.encodeBase64String(encrypted);
       } catch (Exception ex) {
           ex.printStackTrace();
       }
       return null;
   }

public static String decrypt(String key, String encrypted) {
   try {
       IvParameterSpec iv = new IvParameterSpec(paramKey.getBytes("UTF-8"));

       SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"),
                   "AES");
       Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
       cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
       byte[] original = cipher.doFinal(Base64.decodeBase64(encrypted));

       return new String(original);
   } catch (Exception ex) {
       ex.printStackTrace();
   }
       return null;
}

public static void main(String[] args) {

   String key = "9876543210123456"; // 256 bit key
       
   System.out.println(encrypt(key, "djkhflasdjdf"));
   System.out.println(decrypt(key, "iUoMmTT9n/NEA5mXhgDnn0/SM8fvpMTKyJcFQU=="));
}
}

No comments: