Sample code for 30+ languages & platforms
Lua

Duplicate Java AES Results

See more Encryption Examples

Demonstrates how to duplicate Java code for AES encryption.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

local crypt = chilkat.Crypt2.new()

crypt.crypt_algorithm = "aes"
crypt.cipher_mode = "cbc"
crypt.key_length = 256

crypt:set_encoded_iv("000102030405060708090A0B0C0D0E0F", "hex")
crypt:set_encoded_key("uX1AytOx2bqKn1G1NiblFM3YrEMnvciC", "ascii")

crypt.encoding_mode = "hex"

local encrypted = crypt:encrypt_string_enc("tmpString")
print(encrypted)

print(crypt:decrypt_string_enc(encrypted))

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