· 5 years ago · Nov 25, 2019, 06:10 PM
1byte[] salt = getSalt();
2 byte[] iv = getIV();
3 PBEKeySpec spec = new PBEKeySpec(password.toCharArray(), salt, 10000, 256);
4 SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
5 byte[] keyBytes = skf.generateSecret(spec).getEncoded();
6 SecretKey key = new SecretKeySpec(keyBytes, "AES");
7 IvParameterSpec ivspec = new IvParameterSpec(iv);
8 Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
9 cipher.init(Cipher.ENCRYPT_MODE, key, ivspec);
10 byte[] encrypted = cipher.doFinal(password.getBytes());
11 String salt64 = Base64.getEncoder().encodeToString(salt);
12 String iv64 = Base64.getEncoder().encodeToString(iv);
13 String encrypted64 = Base64.getEncoder().encodeToString(encrypted);
14 String array[] = new String[3];
15 array[0] = salt64;
16 array[1] = iv64;
17 array[2] = encrypted64;
18 return array;