Sample code for 30+ languages & platforms
PHP Extension

Duplicate Java AES Results

See more Encryption Examples

Demonstrates how to duplicate Java code for AES encryption.

Chilkat PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$crypt = new CkCrypt2();

$crypt->put_CryptAlgorithm('aes');
$crypt->put_CipherMode('cbc');
$crypt->put_KeyLength(256);

$crypt->SetEncodedIV('000102030405060708090A0B0C0D0E0F','hex');
$crypt->SetEncodedKey('uX1AytOx2bqKn1G1NiblFM3YrEMnvciC','ascii');

$crypt->put_EncodingMode('hex');

$encrypted = $crypt->encryptStringENC('tmpString');
print $encrypted . "\n";

print $crypt->decryptStringENC($encrypted) . "\n";

// The above Chilkat code duplicates the following Java code:

// import javax.crypto.Cipher;
// import javax.crypto.spec.IvParameterSpec;
// import javax.crypto.spec.SecretKeySpec;
// 
// public class Test {
// 	private static final String KEY = "uX1AytOx2bqKn1G1NiblFM3YrEMnvciC";
// 	private static final String IV = "000102030405060708090A0B0C0D0E0F";
// 
// 	private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
// 	public static String bytesToHex(byte[] bytes) {
// 	    char[] hexChars = new char[bytes.length * 2];
// 	    for (int j = 0; j < bytes.length; j++) {
// 	        int v = bytes[j] & 0xFF;
// 	        hexChars[j * 2] = HEX_ARRAY[v >>> 4];
// 	        hexChars[j * 2 + 1] = HEX_ARRAY[v & 0x0F];
// 	    }
// 	    return new String(hexChars);
// 	}
// 	public static byte[] hexToBytes(String s) {
// 	    int len = s.length();
// 	    byte[] data = new byte[len / 2];
// 	    for (int i = 0; i < len; i += 2) {
// 	        data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
// 	                             + Character.digit(s.charAt(i+1), 16));
// 	    }
// 	    return data;
// 	}
// 	public static byte[] encrypt(String value) {
// 		try {
// 			System.out.println("---- encrypt ----");
// 			IvParameterSpec iv = new IvParameterSpec(hexToBytes(IV));
// 			SecretKeySpec skeySpec = new SecretKeySpec(KEY.getBytes("ASCII"), "AES");
// 			Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
// 			cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
// 			byte[] encrypted = cipher.doFinal(value.getBytes("ASCII"));
// 			String x = bytesToHex(encrypted);
// 			System.out.println(x);
// 			return encrypted;
// 		} catch (Exception ex) {
// 			ex.printStackTrace();
// 			return null;
// 		}
// 	}
// 
// 	public static String decrypt(byte[] encrypted) {
// 		try {
// 			System.out.println("---- decrypt ----");
// 			IvParameterSpec iv = new IvParameterSpec(hexToBytes(IV));
// 			SecretKeySpec skeySpec = new SecretKeySpec(KEY.getBytes("ASCII"), "AES");
// 			Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
// 			cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
// 			byte[] original = cipher.doFinal(encrypted);
// 			String x = new String(original);
// 			System.out.println(x);
// 			return x;
// 		} catch (Exception ex) {
// 			ex.printStackTrace();
// 			return null;
// 		}
// 
// 	}
// 
// 	public static void main(String[] args) {
// 		byte[] encrypted = encrypt("tmpString");
// 		decrypt(encrypted);
// 	}
// }
// 

?>