Python Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript



Python Examples

Quick Start
Python Unicode
Python Byte Array
Python Certs
Python Email
Python Encryption
Python FTP
HTML-to-XML
Python HTTP
Python IMAP
Python MHT
Python MIME
Python RSA
Python S/MIME
Python Signatures
Python Socket
Python Spider
Python Tar
Python Upload
Python XML
Python XMP
Python Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

Match Java JCE AES Encryption Results (ECB mode)

Shows sample code in Python that matches Java JCE encryption results for 128-bit AES encryption using ECB mode.

Download Chilkat Python Library

import sys
import chilkat

crypt = chilkat.CkCrypt2()

# Any string argument automatically begins the 30-day trial.
success = crypt.UnlockComponent("30-day trial")
if (success != True):
    print "Crypt component unlock failed"
    sys.exit()

password = "secretPassphrase"

# Use the Digest MD5 algorithm to get a 16-byte binary secret key.
crypt.put_HashAlgorithm("md5")
crypt.put_EncodingMode("hex")
secretKeyHex = crypt.hashStringENC(password)

crypt.put_CryptAlgorithm("aes")
crypt.put_CipherMode("ecb")
crypt.put_KeyLength(128)
crypt.SetEncodedKey(secretKeyHex,"hex")

text = "The quick brown fox jumped over the lazy dog."
encText = crypt.encryptStringENC(text)

# Displays:
# C960892077D566258D38DF4BBAE8548E6827BF8C27A9D2EE
# 6F563FC75003F8F6A05B54CFD28CDC8833BD073F7FC6D031
print 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-2007 Chilkat Software, Inc. All Rights Reserved.