Sample code for 30+ languages & platforms
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

Lazarus Pascal
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.