Lazarus Pascal
Lazarus Pascal
Example: Crypt2.GenRandomBytesENC method
Shows how to use the GenRandomBytesENC method to generate a specified number of random bytes and return them as a binary encoded string, such as in base64 or hex format.Chilkat Lazarus Pascal 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;
s: string;
begin
crypt := TCrypt2.Create;
// Example of a some of the binary encodings supported by Chilkat.
// Internally uses the Fortuna cryptographically secure random number generation algorithm
// auto-seeded from a secure source of entropy that depends on the OS.
crypt.EncodingMode := 'hex';
s := crypt.GenRandomBytesENC(8);
WriteLn('Uppercase Hex: ' + s);
crypt.EncodingMode := 'hex_lower';
s := crypt.GenRandomBytesENC(8);
WriteLn('Lowercase Hex: ' + s);
crypt.EncodingMode := 'base64';
s := crypt.GenRandomBytesENC(8);
WriteLn('Base64: ' + s);
crypt.EncodingMode := 'base64url';
s := crypt.GenRandomBytesENC(8);
WriteLn('Base64Url: ' + s);
crypt.EncodingMode := 'base58';
s := crypt.GenRandomBytesENC(8);
WriteLn('Base58: ' + s);
crypt.EncodingMode := 'base32';
s := crypt.GenRandomBytesENC(8);
WriteLn('Base32: ' + s);
crypt.EncodingMode := 'decList';
s := crypt.GenRandomBytesENC(8);
WriteLn('Decimal List: ' + s);
// Sample Output:
// Uppercase Hex: 1BA0E87915C3B429
// Lowercase Hex: 1e1638a1c7996c58
// Base64: 1lV0I/su5lg=
// Base64Url: Zq7DU0nukLk
// Base58: foUVWUjAT6e
// Base32: LHV5RV4HRCLW2===
// Decimal List: 168,55,214,82,93,154,191,164
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.