Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Duplicate Java AES ResultsDemonstrates how to duplicate Java code for AES encryption.
LOCAL loCrypt LOCAL lcEncrypted * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Crypt2') loCrypt = CreateObject('Chilkat.Crypt2') loCrypt.CryptAlgorithm = "aes" loCrypt.CipherMode = "cbc" loCrypt.KeyLength = 256 loCrypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex") loCrypt.SetEncodedKey("uX1AytOx2bqKn1G1NiblFM3YrEMnvciC","ascii") loCrypt.EncodingMode = "hex" lcEncrypted = loCrypt.EncryptStringENC("tmpString") ? lcEncrypted ? loCrypt.DecryptStringENC(lcEncrypted) * 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); * } * } * RELEASE loCrypt |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.