Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Match Java JCE AES Encryption Results (ECB mode)Shows sample code in Java that matches Java JCE encryption results for 128-bit AES encryption using ECB mode. import com.chilkatsoft.*; public class ChilkatExample { static { try { System.loadLibrary("chilkat"); } catch (UnsatisfiedLinkError e) { System.err.println("Native code library failed to load.\n" + e); System.exit(1); } } public static void main(String argv[]) { CkCrypt2 crypt = new CkCrypt2(); // Any string argument automatically begins the 30-day trial. boolean success; success = crypt.UnlockComponent("30-day trial"); if (success != true) { System.out.println("Crypt component unlock failed"); return; } String password; password = "secretPassphrase"; // Use the Digest MD5 algorithm to get a 16-byte binary secret key. crypt.put_HashAlgorithm("md5"); crypt.put_EncodingMode("hex"); String secretKeyHex; secretKeyHex = crypt.hashStringENC(password); crypt.put_CryptAlgorithm("aes"); crypt.put_CipherMode("ecb"); crypt.put_KeyLength(128); crypt.SetEncodedKey(secretKeyHex,"hex"); String text; text = "The quick brown fox jumped over the lazy dog."; String encText; encText = crypt.encryptStringENC(text); // Displays: // C960892077D566258D38DF4BBAE8548E6827BF8C27A9D2EE // 6F563FC75003F8F6A05B54CFD28CDC8833BD073F7FC6D031 System.out.println(encText); // This Java (JCE) code produces the same results: // String password = "secretPassphrase"; // // MessageDigest md = MessageDigest.getInstance("MD5"); // md.update(password.getBytes("UTF-8"), 0, password.length()); // byte[] rawKey = md.digest(); // // String text = "The quick brown fox jumped over the lazy dog."; // // SecretKeySpec skeySpec = new SecretKeySpec(rawKey, "AES"); // Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); // cipher.init(Cipher.ENCRYPT_MODE, skeySpec); // // byte[] encrypted = cipher.doFinal(text.getBytes("UTF-8")); // // System.out.println(toHex(encrypted)); // This is the toHex method in Java: // public static String toHex (byte buf[]) { // // StringBuffer strbuf = new StringBuffer(buf.length * 2); // int i; // // for (i = 0; i < buf.length; i++) { // if (((int) buf[i] & 0xff) < 0x10) // strbuf.append("0"); // // strbuf.append(Long.toString((int) buf[i] & 0xff, 16)); // } // // return strbuf.toString(); // } } } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.