import java.util.Base64; import java.security.MessageDigest; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.HexFormat; class Main { public static byte[] f44153a = {104, 51, 94, 37, 52, 126, 115, 120, 106, 108, 115, 100, 57, 49}; public static void main(String[] args) { System.out.println(encrypt("Try programiz.pro")); System.out.println(decrypt("UwwXMPrXT5JGty9VfrHiZ+0aR+nbNg71pnRhmKORxjQ=")); } private static String decrypt(String str) { try { byte[] keyBytes = MessageDigest.getInstance("MD5").digest(f44153a); SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES"); byte[] ivBytes = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; IvParameterSpec ivParameterSpec = new IvParameterSpec(ivBytes); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec); int paddingLength = (4 - (str.length() % 4)) % 4; str = str + "=".repeat(paddingLength); byte[] decode = Base64.getDecoder().decode(str); byte[] decryptedBytes = cipher.doFinal(decode); return new String(decryptedBytes); } catch (Exception e) { e.printStackTrace(); return null; } } private static String encrypt(String str) { try { byte[] keyBytes = MessageDigest.getInstance("MD5").digest(f44153a); SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES"); byte[] ivBytes = new byte[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; IvParameterSpec ivParameterSpec = new IvParameterSpec(ivBytes); System.out.println("Key (Hex): " + bytesToHex(keyBytes)); System.out.println("IV (Hex): " + bytesToHex(ivBytes)); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec); String base64Encoded = Base64.getEncoder().encodeToString(cipher.doFinal(str.getBytes(), 0, str.getBytes().length)); int paddingLength = (4 - (base64Encoded.length() % 4)) % 4; base64Encoded = base64Encoded + "=".repeat(paddingLength); return base64Encoded; } catch (Exception e7) { e7.printStackTrace(); return null; } } private static String bytesToHex(byte[] bytes) { HexFormat hexFormat = HexFormat.of(); return hexFormat.formatHex(bytes); } }