Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
DKIM / DomainKey
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
NTLM
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
Bzip2
LZW

Type Conversion

 

Article: Understanding COM References in Delphi

RSA Encrypt and Decrypt Strings

Delphi sample code to RSA public-key encrypt and decrypt strings using public and private keys.

Download Chilkat RSA ActiveX

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
rsa: TChilkatRsa;
success: Integer;
publicKey: String;
privateKey: String;
plainText: String;
rsaEncryptor: TChilkatRsa;
usePrivateKey: Integer;
encryptedStr: String;
rsaDecryptor: TChilkatRsa;
decryptedStr: String;

begin
rsa := TChilkatRsa.Create(Self);

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

  end;

//  This example also generates the public and private
//  keys to be used in the RSA encryption.
//  Normally, you would generate a key pair once,
//  and distribute the public key to your partner.
//  Anything encrypted with the public key can be
//  decrypted with the private key.  The reverse is
//  also true: anything encrypted using the private
//  key can be decrypted using the public key.

//  Generate a 1024-bit key.  Chilkat RSA supports
//  key sizes ranging from 512 bits to 4096 bits.
success := rsa.GenerateKey(1024);
if (success <> 1) then
  begin
    ShowMessage(rsa.LastErrorText);

  end;

//  Keys are exported in XML format:
publicKey := rsa.ExportPublicKey();
privateKey := rsa.ExportPrivateKey();

plainText := 'Encrypting and decrypting should be easy!';

//  Start with a new RSA object to demonstrate that all we
//  need are the keys previously exported:
rsaEncryptor := TChilkatRsa.Create(Self);

//  Encrypted output is always binary.  In this case, we want
//  to encode the encrypted bytes in a printable string.
//  Our choices are "hex", "base64", "url", "quoted-printable".
rsaEncryptor.EncodingMode := 'hex';

//  We'll encrypt with the public key and decrypt with the private
//  key.  It's also possible to do the reverse.
rsaEncryptor.ImportPublicKey(publicKey);

usePrivateKey := 0;
encryptedStr := rsaEncryptor.EncryptStringENC(plainText,usePrivateKey);
Memo1.Lines.Add(encryptedStr);

//  Now decrypt:
rsaDecryptor := TChilkatRsa.Create(Self);

rsaDecryptor.EncodingMode := 'hex';
rsaDecryptor.ImportPrivateKey(privateKey);

usePrivateKey := 1;
decryptedStr := rsaDecryptor.DecryptStringENC(encryptedStr,usePrivateKey);

Memo1.Lines.Add(decryptedStr);
end;

 

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

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

Mail Component · .NET Email Component · XML Parser