Verificador de Hash BCrypt | Confira Grátis se a Senha Corresponde
Verifique grátis e em segundos se uma senha corresponde a um hash BCrypt. Funciona como o password_verify() do PHP, ideal para depurar problemas de login. Compatível com os formatos $2a$ e $2b$.
| Hash | |
|---|---|
| Texto |
Coincide
Não coincide
O que é a verificação BCrypt?
Esta ferramenta confere se uma senha em texto puro que você informa e um hash BCrypt existente foram gerados a partir da mesma cadeia original. Funciona pelo mesmo princípio da função password_verify() do PHP, então serve para confirmar uma implementação de login e depurá-la.
Um hash BCrypt carrega o seu sal dentro de si, e é por isso que gerar um a partir da mesma senha produz a cada vez uma cadeia diferente. Uma simples comparação de cadeias não consegue, portanto, estabelecer a correspondência: o sal precisa ser extraído com o algoritmo dedicado antes da comparação, e desse passo esta ferramenta se encarrega por você.
Como usar a verificação BCrypt
- Informe a cadeia Digite no campo a senha em texto puro que quer verificar.
- Informe o hash Cole um hash BCrypt que comece com $2a$ ou $2b$.
- Pressione o botão de verificar O resultado — corresponde ou não — aparece na hora.
Dicas para aproveitar melhor
- BCrypt incorpora o salt no hash, portanto mesmo que o hash seja diferente a cada vez, será considerado como correspondência se foi gerado a partir da mesma entrada original.
- Esta ferramenta verifica usando o mesmo mecanismo que
password_verify($password, $hash)do PHP. - Ao comparar um hash obtido do banco de dados com uma senha inserida, use uma função de verificação dedicada em vez de uma comparação simples de strings (
==) para evitar ataques de temporização. - Hashes que começam com
$2a$também podem ser verificados como BCrypt.
Quando a verificação BCrypt é útil
Depurar um fluxo de login
Confira diretamente se um hash armazenado no banco de dados corresponde à senha que você espera, sem passar pelo código da sua aplicação.
Confirmar o comportamento após uma redefinição
Teste se um hash gerado a partir de uma senha nova corresponde ao texto puro pretendido.
Verificar hashes durante uma migração
Confirme com antecedência que os hashes BCrypt trazidos de outro sistema continuarão funcionando.
Glossário de BCrypt
- Sal
- Uma cadeia aleatória acrescentada ao gerar o hash. É o que faz uma mesma senha produzir a cada vez um hash diferente.
- password_verify()
- A função padrão do PHP para comparar com segurança uma senha em texto puro com um hash. Ela extrai o sal automaticamente, internamente.
- Ataque de temporização
- Um ataque que deduz informação secreta a partir de diferenças mínimas no tempo de processamento. Usar uma função dedicada que compara em tempo constante o impede.
- $2a$ / $2b$
- Os prefixos que indicam a versão de um hash BCrypt. $2b$ é a versão que corrigiu uma falha de uma implementação mais antiga e é a recomendada hoje.
Perguntas frequentes
$2b$ é uma versão com correção de bug da implementação antiga, e seu uso é atualmente recomendado.
Curiosidade — Por trás da autenticação: o que são esses poucos centésimos de segundo no login
Quando você pressiona o botão de login em um serviço web, parte desses poucos centésimos de segundo antes do resultado chegar é o tempo que o BCrypt gasta calculando o hash da senha. Esse atraso é intencional — feito por segurança.
Um Ataque de Temporização (Timing Attack) é um tipo de ataque de canal lateral onde um invasor deduz informações secretas medindo diferenças sutis no tempo de processamento. Quando uma senha é verificada com uma comparação simples de strings (==), o tempo de comparação varia ligeiramente dependendo de onde os caracteres param de coincidir. A função de verificação do BCrypt é projetada para executar em tempo constante, protegendo contra esse ataque.
Em aplicações web reais, é recomendado retornar uma resposta no mesmo tempo independente de o usuário existir ou não, como se o usuário existisse mas a senha estivesse errada. Se um invasor pode distinguir "usuário não existe" de "senha incorreta", isso dá uma dica para identificar nomes de usuário válidos.