C
Chigusa Tools
🔑 Hash

bcrypt

password_hash / password_verify

bcrypt password hashing and verification.

Como usar

Visão geral

Ferramenta para gerar hashes com bcrypt ou verificar strings de hash.

💡
A conversão é processada no servidor, mas nenhum dado é armazenado.

Um caso de uso comum do hash é "armazenar senhas".

Como princípio fundamental, não é possível reverter um hash para obter os dados originais (unidirecional).
Não é possível obter a senha original a partir do hash bcrypt dela.
Por isso, as senhas não são armazenadas diretamente — em vez disso, o hash é geralmente armazenado.

💡
Dependendo da força do hash, pode ser vulnerável a ataques de força bruta, mas uma explicação detalhada é omitida aqui.

A mesma senha sempre gerará o mesmo hash.
Isso significa que você pode verificar uma string comparando-a com um hash conhecido.
(Por exemplo, para verificar se um hash foi gerado a partir de uma senha específica)

Geração de hash (password_hash)

O hash bcrypt é realizado com um código como o seguinte.
$hash = password_hash('string_to_hash', PASSWORD_BCRYPT, [
    'cost' => 'cost',
]);

As strings de hash geradas pelo bcrypt incluem um salt (string aleatória), portanto, uma string diferente é produzida a cada vez.

$2y$10$Z0kGQ04hCto9dnMu.GyzWOWNQmoKyeF5PXH.zsrf/I.yNJRcbdN86

O custo padrão da função password_hash é 10.
Embora password_hash aceite um intervalo de 4–31, esta ferramenta limita a 4–15 para evitar sobrecarga excessiva do servidor.
(Valores mais altos podem demorar muito para processar.)

Verificação de hash (password_verify)

As strings de hash bcrypt seguem um formato específico que inclui o salt e o número de iterações, permitindo verificar se um hash foi gerado a partir de uma string específica.

A verificação de hash bcrypt é realizada com um código como o seguinte.
$result = password_verify('original_string', 'hash_string_to_verify');
💡
Você pode facilmente realizar hash e verificação bcrypt usando esta ferramenta.