Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
File Encryption / Decryption
File-to-file encryption in Delphi using AES, Blowfish, RC2, ARC4, or 3DES. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATCRYPT2Lib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var crypt: TChilkatCrypt2; success: Integer; key: String; iv: 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; crypt.CryptAlgorithm := 'aes'; crypt.CipherMode := 'cbc'; crypt.KeyLength := 128; // 16 bytes of key for 128-bit encryption. key := '1234567890123456'; // The IV is equal to the block size of the encryption algorithm. iv := '1234567890123456'; // Set the key. crypt.SetEncodedKey(key,'ascii'); // Set the IV crypt.SetEncodedIV(iv,'ascii'); // AES Encrypt the file (the file may be any size because it will // stream the file in/out. success := crypt.CkEncryptFile('hamlet.xml','aesEncrypted.dat'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; // AES Decrypt the file (the file may be any size because it will // stream the file in/out. success := crypt.CkDecryptFile('aesEncrypted.dat','hamlet_aes.xml'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; ShowMessage('AES File Encryption Success.'); // Now do 3DES file encryption: // To use Triple-DES, set the algorithm = "des", // and the key length = 168. // To use DES, set the key length = 56 bits. crypt.CryptAlgorithm := 'des'; crypt.CipherMode := 'cbc'; crypt.KeyLength := 168; // 3DES Encrypt the file success := crypt.CkEncryptFile('hamlet.xml','tripleDesEncrypted.dat'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; // 3DES Decrypt the file success := crypt.CkDecryptFile('tripleDesEncrypted.dat','hamlet_3des.xml'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; ShowMessage('3DES File Encryption Success.'); // Do Blowfish file encryption: // To use Blowfish, set the algorithm = "blowfish2". // The original Chilkat "blowfish" implementation outputs // 4321 swapped bytes. "blowfish2" output is in the correct // byte order. crypt.CryptAlgorithm := 'blowfish2'; crypt.CipherMode := 'cbc'; crypt.KeyLength := 128; // Blowfish Encrypt the file success := crypt.CkEncryptFile('hamlet.xml','blowfishEncrypted.dat'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; // Blowfish Decrypt the file success := crypt.CkDecryptFile('blowfishEncrypted.dat','hamlet_blowfish.xml'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; ShowMessage('Blowfish File Encryption Success.'); // Do RC2 file encryption: // To use RC2, set the algorithm = "rc2". // Also, set the Rc2EffectiveKeyLength property. crypt.CryptAlgorithm := 'rc2'; crypt.CipherMode := 'cbc'; // Key length and effective key length should range // from 8 to 1024 bits. crypt.KeyLength := 128; crypt.Rc2EffectiveKeyLength := 128; // RC2 Encrypt the file success := crypt.CkEncryptFile('hamlet.xml','rc2Encrypted.dat'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; // RC2 Decrypt the file success := crypt.CkDecryptFile('rc2Encrypted.dat','hamlet_rc2.xml'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; ShowMessage('RC2 File Encryption Success.'); // Do ARC4 file encryption: // To use ARC4, set the algorithm = "arc4". crypt.CryptAlgorithm := 'arc4'; crypt.KeyLength := 128; // ARC4 Encrypt the file success := crypt.CkEncryptFile('hamlet.xml','arc4Encrypted.dat'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; // ARC4 Decrypt the file success := crypt.CkDecryptFile('arc4Encrypted.dat','hamlet_arc4.xml'); if (success <> 1) then begin ShowMessage(crypt.LastErrorText); end; ShowMessage('ARC4 File Encryption Success.'); end; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.