Lazarus Pascal
Lazarus Pascal
SHA256 Hash the Bytes Represented in a Hex String
Demonstrates how to compute the SHA256 hash of the bytes represented by a hexidecimal encoded string, and return the hash bytes as an hex encoded string.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.BinData,
Chilkat.Crypt2;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
src: string;
bd: TBinData;
crypt: TCrypt2;
result: string;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// We wish to compute the SHA256 hash of the bytes 0x6C 0xF8 0xEA 0x51 0xE4 0xE0 0xF5 0x99 0xCF ...
src := '6CF8EA51E4E0F599CF03EC8D58C3DCBC9C889A77FB2816B40DE25C2EC54E98A67EA517B';
bd := TBinData.Create;
success := bd.AppendEncoded(src,'hex');
// The bd now contains the bytes 0x6C 0xF8 0xEA 0x51 0xE4 0xE0 0xF5 0x99 0xCF ...
crypt := TCrypt2.Create;
crypt.HashAlgorithm := 'sha256';
crypt.EncodingMode := 'hex';
// Hash the bytes contained in bd, and return the 32-byte SHA256 hash as a hexidecimal encoded string.
result := crypt.HashBdENC(bd);
WriteLn(result);
bd.Free;
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.