Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP ActiveX Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3


 

 

 

 

 

 

 

 

Duplicate Java's PBEWithMD5AndDES

Demonstrate's how to duplicate Java's PBEWithMD5AndDES.

Download Chilkat Crypt ActiveX

<?php

$crypt = new COM("Chilkat.Crypt2");

$success = $crypt->UnlockComponent('Anything for 30-day trial');
if ($success != true) {
    print $crypt->lastErrorText() . "\n";
    exit;
}

$crypt->CryptAlgorithm = 'pbes1';
$crypt->PbesPassword = 'secret';

$crypt->PbesAlgorithm = 'des';
$crypt->KeyLength = 64;

//  The salt for PBKDF1 is always 8 bytes:
$crypt->SetEncodedSalt('C773218C7EC8EE99','hex');

$crypt->IterationCount = 20;

//  A hash algorithm needs to be set for PBES1:
$crypt->HashAlgorithm = 'md5';

//  Indicate that the encrypted bytes should be returned
//  as a hex string:
$crypt->EncodingMode = 'hex';

$plainText = 'This is another example';

$encryptedText = $crypt->encryptStringENC($plainText);

//  The output should be: E729548140D20B14E9140F832A7E980AA449A84B295C75CE
print $encryptedText . "\n";

//  Now decrypt:
$decryptedText = $crypt->decryptStringENC($encryptedText);

print $decryptedText . "\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));
	}

?>

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.