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

  1. Informe a cadeia Digite no campo a senha em texto puro que quer verificar.
  2. Informe o hash Cole um hash BCrypt que comece com $2a$ ou $2b$.
  3. 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

BCrypt incorpora um salt aleatório dentro do próprio hash. Durante a verificação, o salt é extraído do hash e a entrada é re-hasheada com o mesmo salt para comparação, então hashes com aparências diferentes ainda podem corresponder corretamente.

Ambos são compatíveis e esta ferramenta pode verificar qualquer um dos dois. $2b$ é uma versão com correção de bug da implementação antiga, e seu uso é atualmente recomendado.

Não. BCrypt é uma função hash unidirecional, e é computacionalmente inviável reverter um hash para a senha original. Esta ferramenta apenas verifica se uma entrada corresponde a um hash — ela não pode recuperar o valor original.
Tool-kun

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.