Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
BCrypt Verify a Password (Check if Password is Correct)
See more Encryption Examples
A system that uses BCrypt for storing passwords would not store the actual password, but would instead store the bcrypt hash of the password. When a user presents the password, such as for login, call BCryptVerify to verify the password against the stored bcrypt hash.Note: This example requires Chilkat v9.5.0.65 or greater.
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;
storedHash: string;
password: string;
passwordValid: Boolean;
begin
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
crypt := TCrypt2.Create;
storedHash := '$2a$10$H5kIVktMGzAPKGKNAe9DVu0iwEqfhv/o4MMJ/Dzw/MPy1leOE9NOK';
password := 'mySecretPassword';
passwordValid := crypt.BCryptVerify(password,storedHash);
if (passwordValid = True) then
begin
WriteLn(password + ' is valid.');
end
else
begin
WriteLn(password + ' is NOT valid.');
end;
password := 'notAValidPassword';
passwordValid := crypt.BCryptVerify(password,storedHash);
if (passwordValid = True) then
begin
WriteLn(password + ' is valid.');
end
else
begin
WriteLn(password + ' is NOT valid.');
end;
// Output should be:
// mySecretPassword is valid.
// notAValidPassword is NOT valid.
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.