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

ARC4 Encryption (ARCFOUR)

Download Chilkat Crypt ActiveX

Demonstrates simple ARC4 encryption to match some simple test vectors published by Wikipedia. ARC4 is a fast stream cipher supporting key lengths from 8 to 2048 bits (i.e. from 1 to 256 bytes). It is not a block cipher, so there is no padding, no modes, and no initialization vector.

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
crypt: TChilkatCrypt2;
success: Integer;
cipherText: String;
plainText: 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;

//  Set the encryption algorithm to ARC4:
crypt.CryptAlgorithm := 'arc4';

//  We want the encrypted output to be a hex-encoded string.
crypt.EncodingMode := 'hex';

//  Encrypt some test vectors from Wikipedia:

//  The key length (in bits) is equal to the number of us-ascii
//  bytes in our key string * 8.

// ARC4( "Key", "Plaintext" ) == BBF316E8D940AF0AD3
crypt.KeyLength := 24;
crypt.SetEncodedKey('Key','ascii');
cipherText := crypt.EncryptStringENC('Plaintext');
Memo1.Lines.Add(cipherText);
plainText := crypt.DecryptStringENC(cipherText);
Memo1.Lines.Add(plainText);

// ARC4( "Wiki", "pedia" ) == 1021BF0420
crypt.KeyLength := 32;
crypt.SetEncodedKey('Wiki','ascii');
cipherText := crypt.EncryptStringENC('pedia');
Memo1.Lines.Add(cipherText);
plainText := crypt.DecryptStringENC(cipherText);
Memo1.Lines.Add(plainText);

// ARC4( "Secret", "Attack at dawn" ) == 45A01F645FC35B383552544B9BF5
crypt.KeyLength := 48;
crypt.SetEncodedKey('Secret','ascii');
cipherText := crypt.EncryptStringENC('Attack at dawn');
Memo1.Lines.Add(cipherText);
plainText := crypt.DecryptStringENC(cipherText);
Memo1.Lines.Add(plainText);

//  Note: The call to SetEncodedKey serves to set the key
//  to the us-ascii bytes of the string.

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