Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
POP3
RSA
S/MIME
SMTP
Socket
Spider
SFTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Byte Array
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate

Unreleased...
Bzip2
LZW
Icon

Type Conversion

 

Article: Understanding COM References in Delphi

Matching .NET Framework AES Encryption Results

Download Chilkat Crypt ActiveX

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

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATCRYPT2Lib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
crypt: TChilkatCrypt2;
success: Integer;
ivHex: String;
keyHex: String;

begin

//  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 := TChilkatCrypt2.Create(Self);

success := crypt.UnlockComponent('Anything for 30-day trial');
if (success <> 1) then
  begin
    ShowMessage('Crypt component unlock failed');

  end;

crypt.CryptAlgorithm := 'aes';
crypt.CipherMode := 'cbc';
crypt.KeyLength := 256;
crypt.PaddingScheme := 0;
crypt.EncodingMode := 'base64';

ivHex := '000102030405060708090A0B0C0D0E0F';
keyHex := '000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F';
crypt.SetEncodedIV(ivHex,'hex');
crypt.SetEncodedKey(keyHex,'hex');

ShowMessage(crypt.EncryptStringENC('This is a test'));


end;

 

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

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

Mail Component · .NET Email Component · XML Parser