Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
ARC4 PRNG (Pseudo Random Number Generator)
See more Encryption Examples
Uses the ARC4 stream encryption algorithm as a pseudo random number generator.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Crypt2;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
crypt: TCrypt2;
key: string;
data: string;
cipherHex: string;
i: Integer;
begin
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
crypt := TCrypt2.Create;
// Set the encryption algorithm to ARC4:
crypt.CryptAlgorithm := 'arc4';
// We want the encrypted output to be a hex-encoded string.
crypt.EncodingMode := 'hex';
key := '000102030405060708090A0B0C0D0E0F';
data := '12345678';
// Key length is 128 bits in this example.
crypt.KeyLength := 128;
crypt.SetEncodedKey(key,'hex');
// Generate 16 "random" 8-byte blocks, encoded as hex strings.
// This example will generate the identical output each time
// it is run.
for i := 0 to 15 do
begin
cipherHex := crypt.EncryptStringENC(data);
WriteLn(data);
WriteLn(cipherHex);
data := cipherHex;
end;
crypt.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.