· 8 years ago · Dec 15, 2017, 08:36 AM
1public class EncryptionUtil {
2 private static final String KEY = "test01";
3
4 public static String encrypt(String plainText) {
5 try {
6
7 byte[] keyStart = KEY.getBytes();
8 KeyGenerator kgen = KeyGenerator.getInstance("AES");
9 SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
10 sr.setSeed(keyStart);
11 kgen.init(128, sr); // 192 and 256 bits may not be available
12 SecretKey skey = kgen.generateKey();
13 byte[] key = skey.getEncoded();
14
15 // encrypt
16 byte[] encryptedData = encrypt(key, plainText.getBytes());
17 return new String(encryptedData, "UTF-8");
18 } catch (Exception ex) {
19 ex.printStackTrace();
20 return null;
21 }
22 }
23
24 private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
25 SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
26 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
27 cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
28 byte[] encrypted = cipher.doFinal(clear);
29 return encrypted;
30 }
31
32 private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
33 SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
34 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
35 cipher.init(Cipher.DECRYPT_MODE, skeySpec);
36 byte[] decrypted = cipher.doFinal(encrypted);
37 return decrypted;
38 }
39}