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
(DataFlex) Duplicate Java AES ResultsDemonstrates how to duplicate Java code for AES encryption.
Use ChilkatAx-win32.pkg Procedure Test Handle hoCrypt String sEncrypted String sTemp1 Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt If (Not(IsComObjectCreated(hoCrypt))) Begin Send CreateComObject of hoCrypt End Set ComCryptAlgorithm Of hoCrypt To "aes" Set ComCipherMode Of hoCrypt To "cbc" Set ComKeyLength Of hoCrypt To 256 Send ComSetEncodedIV To hoCrypt "000102030405060708090A0B0C0D0E0F" "hex" Send ComSetEncodedKey To hoCrypt "uX1AytOx2bqKn1G1NiblFM3YrEMnvciC" "ascii" Set ComEncodingMode Of hoCrypt To "hex" Get ComEncryptStringENC Of hoCrypt "tmpString" To sEncrypted Showln sEncrypted Get ComDecryptStringENC Of hoCrypt sEncrypted To sTemp1 Showln sTemp1 // 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); // } // } // End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.