Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

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

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

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

Matching .NET Framework AES Encryption Results

AES string encryption in Perl and the equivalent C# code using the .NET Framework.

Chilkat Module for Perl 5.8.*

Chilkat Module for Perl 5.10.*

use chilkat;


#  First, here's the C# code we're trying to match:

#  RijndaelManaged rman = new RijndaelManaged();
#  rman.Mode = CipherMode.CBC;
#  rman.Padding = PaddingMode.PKCS7;
#  rman.KeySize = 256;

#  Use a 32-byte key (for 256-bit encryption)
#  byte [] keyBytes = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
#  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 };

#  The IV for AES is 16 bytes, because the AES block size is 16.
#  byte [] ivBytes = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };

#  ICryptoTransform encryptor = rman.CreateEncryptor(keyBytes, ivBytes);

#  byte [] plainText = System.Text.Encoding.UTF8.GetBytes("This is a test");

#  byte [] encrypted = encryptor.TransformFinalBlock(plainText, 0, plainText.Length);

#  Output is 31k+86baFy9GJKQ9Y1ebCw==
#  textBox1.Text = Convert.ToBase64String(encrypted);

#  The following Chilkat code produces the same output:
$crypt = new chilkat::CkCrypt2();

$success = $crypt->UnlockComponent("Anything for 30-day trial");
if ($success != 1) {
    print "Crypt component unlock failed" . "\n";
    exit;
}

$crypt->put_CryptAlgorithm("aes");
$crypt->put_CipherMode("cbc");
$crypt->put_KeyLength(256);
$crypt->put_PaddingScheme(0);
$crypt->put_EncodingMode("base64");

$ivHex = "000102030405060708090A0B0C0D0E0F";
$keyHex = "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F";
$crypt->SetEncodedIV($ivHex,"hex");
$crypt->SetEncodedKey($keyHex,"hex");

print $crypt->encryptStringENC("This is a test") . "\n";


 

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

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