· 9 years ago · Nov 14, 2016, 01:18 PM
1public static String md5(String input) throws NoSuchAlgorithmException {
2 MessageDigest md = MessageDigest.getInstance("MD5");
3 byte[] messageDigest = md.digest(input.getBytes());
4 BigInteger number = new BigInteger(1, messageDigest);
5 return number.toString(16);
6}
7
8public String decrypt(String encryptedData, String initialVectorString, String secretKey) {
9 String decryptedData = null;
10 try {
11 SecretKeySpec skeySpec = new SecretKeySpec(md5(secretKey).getBytes(), "AES");
12 IvParameterSpec initialVector = new IvParameterSpec(initialVectorString.getBytes());
13 Cipher cipher = Cipher.getInstance("AES/CFB8/NoPadding");
14 cipher.init(Cipher.DECRYPT_MODE, skeySpec, initialVector);
15 byte[] encryptedByteArray = (new org.apache.commons.codec.binary.Base64()).decode(encryptedData.getBytes());
16 byte[] decryptedByteArray = cipher.doFinal(encryptedByteArray);
17 decryptedData = new String(decryptedByteArray, "UTF8");
18 } catch (Exception e) {
19 LOGGER.debug("Problem decrypting the data", e);
20 }
21 return decryptedData;
22}