Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Duplicate Java's PBEWithMD5AndDESDemonstrate's how to duplicate Java's PBEWithMD5AndDES. Downloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries FreeBSD C++ Libraries HP-UX C++ Libraries BlackBerry QNX C++ Libraries // Needs #include <CkCrypt2.h> CkString strOut; CkCrypt2 crypt; bool success; success = crypt.UnlockComponent("Anything for 30-day trial"); if (success != true) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } crypt.put_CryptAlgorithm("pbes1"); crypt.put_PbesPassword("secret"); crypt.put_PbesAlgorithm("des"); crypt.put_KeyLength(64); // The salt for PBKDF1 is always 8 bytes: crypt.SetEncodedSalt("C773218C7EC8EE99","hex"); crypt.put_IterationCount(20); // A hash algorithm needs to be set for PBES1: crypt.put_HashAlgorithm("md5"); // Indicate that the encrypted bytes should be returned // as a hex string: crypt.put_EncodingMode("hex"); const char * plainText; plainText = "This is another example"; const char * encryptedText; encryptedText = crypt.encryptStringENC(plainText); // The output should be: E729548140D20B14E9140F832A7E980AA449A84B295C75CE strOut.append(encryptedText); strOut.append("\r\n"); // Now decrypt: const char * decryptedText; decryptedText = crypt.decryptStringENC(encryptedText); strOut.append(decryptedText); strOut.append("\r\n"); // ---------------------------------------------------------------- // ---------------------------------------------------------------- // The code above duplicates this Java JCE example: public static void main(String args[]) throws Exception { PBEKeySpec pbeKeySpec; PBEParameterSpec pbeParamSpec; SecretKeyFactory keyFac; // Salt byte[] salt = { (byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c, (byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99 }; // Iteration count int count = 20; // Create PBE parameter set pbeParamSpec = new PBEParameterSpec(salt, count); String password = "secret"; pbeKeySpec = new PBEKeySpec(password.toCharArray()); keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES"); SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec); // Create PBE Cipher Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES"); // Initialize PBE Cipher with key and parameters pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey, pbeParamSpec); // Our cleartext byte[] cleartext = "This is another example".getBytes(); // Encrypt the cleartext byte[] ciphertext = pbeCipher.doFinal(cleartext); System.out.print("ciphertext: "); System.out.println(toHex(ciphertext)); } SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.