import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.security.SecureRandom; import java.util.Base64; public class Decrypt { public static void main(String[] args) { String encrypted = "_encrypted_Lf35uy0hf9JfpGZDc6qu+A=="; String securityKey = "d@a$t%a^r&a*t"; try { String decrypted = decrypt(encrypted.replaceFirst("_encrypted_", ""), securityKey); System.out.println(decrypted); } catch (Exception e) { e.printStackTrace(); } } public static String decrypt(String src, String securityKey) throws Exception { SecretKeySpec secretKeySpec = keyGen(securityKey); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); return new String(cipher.doFinal(Base64.getDecoder().decode(src))); } private static SecretKeySpec keyGen(String securityKey) throws Exception { KeyGenerator kgen = KeyGenerator.getInstance("AES"); SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG"); secureRandom.setSeed(securityKey.getBytes(java.nio.charset.StandardCharsets.UTF_8)); kgen.init(128, secureRandom); SecretKey secretKey = kgen.generateKey(); byte[] encoded = secretKey.getEncoded(); return new SecretKeySpec(encoded, "AES"); } }