Gerador de Hash bcrypt

Gerar hash

Maior = mais lento e mais seguro. 12 é um bom padrão.

De vez em quando, você tem um hash bcrypt de um backup antigo e uma senha em texto simples, e precisa saber se eles correspondem. Ou você tem uma senha e quer o hash que um determinado fator de custo produziria. Esta ferramenta faz ambas as coisas: digite uma senha e ela gera um novo hash, cole um hash e um candidato e ela informa se a verificação foi bem-sucedida — usando a mesma comparação em tempo constante que uma verificação de login em produção.

Gerar ou verificar bcrypt

  1. 1

    Escolha um modo

    Gere um novo hash a partir de uma senha ou verifique uma senha contra um hash existente `$2a$` / `$2b$` / `$2y$`.

  2. 2

    Para gerar: insira texto simples e custo

    Custo 4-14; 10-12 é normal. Um sal aleatório de 16 bytes é criado para cada hash.

  3. 3

    Para verificar: cole hash e texto simples

    A ferramenta extrai o sal e o custo do hash e re-hash o texto simples com os mesmos parâmetros.

  4. 4

    Leia o resultado

    O modo de geração copia o hash de 60 caracteres; o modo de verificação retorna uma correspondência verde ou uma discrepância vermelha.

Internos do modo de verificação

Dado um hash armazenado como:

$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6

O verificador:

  1. Analisa a versão (2b), custo (12), sal (primeiros 22 caracteres após o custo) e digest (últimos 31 caracteres).
  2. Re-executa bcrypt no texto simples candidato com o sal e custo extraídos.
  3. Compara o digest resultante ao original usando comparação em tempo constante.

Uma comparação bem-sucedida resulta em true; qualquer diferença resulta em false.

Comparação em tempo constante

Comparar duas strings com um == ingênuo retorna assim que um byte difere — um canal lateral de tempo que pode vazar o hash dígito por dígito ao longo de amostras suficientes. Verificações de senha em produção (e esta ferramenta) usam uma comparação em tempo constante que sempre examina cada byte, de modo que o tempo de decisão não depende de quantos bytes iniciais correspondem.

Casos diagnósticos comuns

Sintoma Causa provável
A verificação falha, você tem certeza da senha Espaços em branco ou BOM no input. Remova ambos.
A verificação falha, versão 2y Algumas bibliotecas não gostam de 2y; é válido e compatível. Re-hash com 2b daqui para frente.
Hash muito curto / malformado Não é um hash bcrypt. MD5 tem 32 caracteres hexadecimais, SHA-1 tem 40, bcrypt tem 60 com delimitadores $.
Aviso de discrepância de custo O custo armazenado está abaixo do seu mínimo de política. Re-hash no próximo login bem-sucedido.

Rehashing no login

Melhor prática: quando um usuário faz login com sucesso, verifique se o hash armazenado tem um custo inferior à sua política atual. Se sim, re-hash a senha com o novo custo e atualize o banco de dados. Em poucos meses, você atualiza toda a base de usuários sem pedir a ninguém para mudar sua senha.

O que a ferramenta não faz

  • Verificação em massa — Construída para um hash por vez.
  • Quebrar ou força bruta — Ataques de dicionário ou tabela arco-íris estão intencionalmente fora do escopo.
  • Recuperar o texto simples — bcrypt é unidirecional; se você esqueceu a senha, o único caminho é redefinir.

Perguntas frequentes

Não. O hashing e a verificação acontecem no seu navegador. Nem o texto simples nem o hash saem da página.

O sal é gerado aleatoriamente por hash. Esse é o ponto — dois usuários com a mesma senha obtêm hashes diferentes, derrotando tabelas arco-íris.

Sim, é exatamente isso que o modo de verificação faz: cole o hash que você tem, cole uma senha candidata, a ferramenta confirma ou nega uma correspondência.

Sim. Todas as variantes modernas interoperam — o digest é compatível entre versões; apenas a tag difere. Alguns hashes antigos $2$ de sistemas da era 2000 podem precisar de uma biblioteca com suporte legado explícito.

Ferramentas relacionadas