Sample code for 30+ languages & platforms
AutoIt

Duplicate Java AES Results

See more Encryption Examples

Demonstrates how to duplicate Java code for AES encryption.

Chilkat AutoIt Downloads

AutoIt
$oCrypt = ObjCreate("Chilkat.Crypt2")

$oCrypt.CryptAlgorithm = "aes"
$oCrypt.CipherMode = "cbc"
$oCrypt.KeyLength = 256

$oCrypt.SetEncodedIV "000102030405060708090A0B0C0D0E0F","hex"
$oCrypt.SetEncodedKey "uX1AytOx2bqKn1G1NiblFM3YrEMnvciC","ascii"

$oCrypt.EncodingMode = "hex"

Local $sEncrypted = $oCrypt.EncryptStringENC("tmpString")
ConsoleWrite($sEncrypted & @CRLF)

ConsoleWrite($oCrypt.DecryptStringENC($sEncrypted) & @CRLF)

;  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);
;  	}
;  }
;