Una biblioteca para ayudarlo a hash contraseñas. Puede leer sobre Bcrypt en Wikipedia, así como en el siguiente artículo: cómo almacenar de manera segura una contraseña

Para facilitar, recomiendo usar el jefe (administrador de dependencias para Delphi) para la instalación, simplemente ejecutando el comando a continuación en un terminal (Windows PowerShell, por ejemplo):
boss install https://github.com/viniciussanchez/bcrypt
Si elige instalar manualmente, simplemente agregue las siguientes carpetas a su proyecto, en Proyecto> Opciones> Compilador de recursos> Directorios y condicionales> Incluir Ruta de búsqueda de archivos
../bcrypt/src
var
LHash: string;
begin
LHash := TBCrypt.GenerateHash(password, cost, type );
end ;Dónde
password es la contraseña que se debe tenertype es uno de thashtype.php, thashtype.bsd o thashtype.default, thashtype.bsd es el valor predeterminado cost es un número entre 10 y 30, el valor predeterminado es 10 var
LVerify : Boolean;
begin
LVerify := TBCrypt.CompareHash(password, hash);
end ;Dónde
password es la contraseña a verificarhash es un hash generado, similar a $2y$12$GuC.Gk2YDsp8Yvga.IuSNOWM0fxEIsAEaWC1hqEI14Wa.7Ps3iYFq var
LHashInfo: THashInfo;
LSalt, LHash: string;
LHashType: THashType;
LCost: Word;
begin
LHashInfo := TBCrypt.GetHashInfo(hash);
LCost := LHashInfo.Cost;
LSalt := LHashInfo.Salt;
LHash := LHashInfo.Hash;
LHashType := LHashInfo.& Type ;Dónde
hash es un hash generado var
LNeeds : Boolean;
begin
LNeeds := TBCrypt.NeedsRehash(hash, cost);
end ;Dónde
hash es un hash, similar a $2y$12$GuC.Gk2YDsp8Yvga.IuSNOWM0fxEIsAEaWC1hqEI14Wa.7Ps3iYFqcost es un número entre 10 y 30, el valor predeterminado es 10Los caracteres que comprenden el hash resultante son:
./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
Los hashs resultantes tendrán 60 caracteres.

El código para esto proviene de algunas fuentes: