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

ASCII / ANSI Secret Key in Symmetric Encryption

Download Chilkat Crypt ActiveX

Using an ASCII (or ANSI) secret key w/ symmetric encryption: AES, Blowfish, Twofish, RC2, 3DES, etc.

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
crypt: TChilkatCrypt2;
success: Integer;
encKey: String;
text: String;
encText: String;
decryptedText: String;

begin
crypt := TChilkatCrypt2.Create(Self);

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

  end;

//  A frequent support question goes something like this:
//  ------------------
//  I am not able to decrypt strings encrypted using
//  cryptix.jce.provider.key.RawSecretKey (Java) like I would normally do.

// The key generation is being done with the Rijndael algorithm (256-bit)
//  The AES encryption algorithm is "Rijndael/ECB/PKCS#5"

//  The 32 character source key I'm using is this:
//  1234567890123456789012345678912
// 
//  ------------------
//  The customer tries to call GenerateSecretKey to
//  convert the 32-character source key to a binary secret key,
//  but this is incorrect (in this case).  GenerateSecretKey
//  hashes a string of any length and produces binary hash output
//  that is of the appropriate size to be used as a secret key.

//  The telltale sign is that in this case, the string is the exact
//  length of the secret key.  32 ANSI characters = 256 bits.
//  Therefore, it is obvious that the bytes of the binary
//  secret key should be the exact ascii character values
//  of the string.

encKey := '1234567890123456789012345678912';

crypt.CryptAlgorithm := 'aes';
//  Mode is "ecb" or "cbc"
crypt.CipherMode := 'ecb';
crypt.KeyLength := 256;

//  Call SetEncodedKey with "ascii" to tell the component
//  to use the ascii-bytes as the binary secret key.
//  Make sure you call this after setting the KeyLength.
crypt.SetEncodedKey(encKey,'ascii');

crypt.EncodingMode := 'base64';
text := 'The quick brown fox jumped over the lazy dog.';

//  Encrypt a string and return the binary encrypted data
//  in a base-64 encoded string.
encText := crypt.EncryptStringENC(text);

Memo1.Lines.Add(encText);

//  Decrypt and show the original string:
decryptedText := crypt.DecryptStringENC(encText);

Memo1.Lines.Add(decryptedText);
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