Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) RC2 Encryption and DecryptionRC2 encryption. The Chilkat encryption component supports RC2 encryption in both ECB (Electronic Cookbook) and CBC (Cipher-Block Chaining) modes. The key size may range from 8 bits to 1024 bits.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Crypt2; ... procedure TForm1.Button1Click(Sender: TObject); var crypt: HCkCrypt2; ivHex: PWideChar; keyHex: PWideChar; encStr: PWideChar; decStr: PWideChar; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. crypt := CkCrypt2_Create(); // Set the encryption algorithm = "rc2" CkCrypt2_putCryptAlgorithm(crypt,'rc2'); // CipherMode may be "ecb" or "cbc" CkCrypt2_putCipherMode(crypt,'cbc'); // KeyLength may range from 8 bits to 1024 bits CkCrypt2_putKeyLength(crypt,128); // RC2 also has an effective key length property // which can also range from 8 bits to 1024 bits: CkCrypt2_putRc2EffectiveKeyLength(crypt,128); // The padding scheme determines the contents of the bytes // that are added to pad the result to a multiple of the // encryption algorithm's block size. RC2 has a block // size of 8 bytes, so encrypted output is always // a multiple of 8. CkCrypt2_putPaddingScheme(crypt,0); // EncodingMode specifies the encoding of the output for // encryption, and the input for decryption. // It may be "hex", "url", "base64", or "quoted-printable". CkCrypt2_putEncodingMode(crypt,'hex'); // An initialization vector is required if using CBC mode. // ECB mode does not use an IV. // The length of the IV is equal to the algorithm's block size. // It is NOT equal to the length of the key. ivHex := '0001020304050607'; CkCrypt2_SetEncodedIV(crypt,ivHex,'hex'); // The secret key must equal the size of the key. // For 128-bit encryption, the binary secret key is 16 bytes. keyHex := '000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F'; CkCrypt2_SetEncodedKey(crypt,keyHex,'hex'); // Encrypt a string... // The input string is 44 ANSI characters (i.e. 44 bytes), so // the output should be 48 bytes (a multiple of 8). // Because the output is a hex string, it should // be 96 characters long (2 chars per byte). encStr := CkCrypt2__encryptStringENC(crypt,'The quick brown fox jumps over the lazy dog.'); Memo1.Lines.Add(encStr); // Now decrypt: decStr := CkCrypt2__decryptStringENC(crypt,encStr); Memo1.Lines.Add(decStr); CkCrypt2_Dispose(crypt); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.