bcrypt
1.0.8
Uma biblioteca para ajudá -lo a hash senhas. Você pode ler sobre o BCRYPT na Wikipedia, bem como no seguinte artigo: Como armazenar uma senha com segurança

Para facilitar, recomendo o uso do chefe (dependência do Delphi) para instalação, simplesmente executando o comando abaixo em um terminal (Windows PowerShell, por exemplo):
boss install https://github.com/viniciussanchez/bcrypt
Se você optar por instalar manualmente, basta adicionar as seguintes pastas ao seu projeto, no projeto> Opções> Compilador de Recursos> Diretórios e Condicionais> Inclua Caminho de Pesquisa de Arquivos
../bcrypt/src
var
LHash: string;
begin
LHash := TBCrypt.GenerateHash(password, cost, type );
end ;Onde
password é a senha a ser hashedtype é um dos thashtype.php, thashtype.bsd ou thashtype.default, thashtype.bsd é o padrão cost é um número entre 10 e 30, o padrão é 10 var
LVerify : Boolean;
begin
LVerify := TBCrypt.CompareHash(password, hash);
end ;Onde
password é a senha a ser verificadahash é um hash gerado, semelhante 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 ;Onde
hash é um hash gerado var
LNeeds : Boolean;
begin
LNeeds := TBCrypt.NeedsRehash(hash, cost);
end ;Onde
hash é um hash, semelhante a $2y$12$GuC.Gk2YDsp8Yvga.IuSNOWM0fxEIsAEaWC1hqEI14Wa.7Ps3iYFqcost é um número entre 10 e 30, o padrão é 10Os personagens que compõem o hash resultante são:
./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
Hashes resultantes terão 60 caracteres.

O código para isso vem de algumas fontes: