Gerador e verificador de hash bcrypt
Armazenar senhas com MD5 ou SHA256 as deixa expostas, porque esses algoritmos são rápidos demais. Uma GPU moderna testa bilhões de tentativas por segundo contra eles. Os desenvolvedores precisam de um algoritmo deliberadamente lento e com salt, mas configurar um localmente apenas para testar um hash desperdiça tempo.
Este gerador de hash bcrypt cria hashes de senha seguros com um fator de custo que você controla. Cole uma senha, escolha um fator de trabalho e obtenha imediatamente um hash bcrypt válido. Você também pode verificar um hash existente em relação a um texto simples, e tudo é executado no seu navegador.
Crie ou verifique um hash bcrypt
Armazenar senhas com MD5 ou SHA256 as deixa expostas, porque esses algoritmos são rápidos demais. Uma GPU moderna testa bilhões de tentativas por segundo contra eles. Os desenvolvedores precisam de um algoritmo deliberadamente lento e com salt, mas configurar um localmente apenas para testar um hash desperdiça tempo.
Use $2b$ para a saída moderna padrão ou $2y$ quando precisar de formatação compatível com PHP.
O que é um gerador de hash bcrypt?
Um gerador de hash bcrypt, também chamado de gerador de hash de senha bcrypt, transforma uma senha em texto simples em um hash bcrypt seguro. O bcrypt é uma função de hashing de senhas baseada na cifra Blowfish, criada por Niels Provos e David Mazières em 1999. Ao contrário de hashes rápidos como MD5, o bcrypt é deliberadamente lento para resistir a ataques de força bruta.
Esta ferramenta produz um hash padrão de 60 caracteres que qualquer biblioteca bcrypt pode verificar. Ela também funciona como um verificador bcrypt, conferindo se uma senha corresponde a um hash que você já possui. As duas ações acontecem inteiramente no seu dispositivo, portanto nenhuma senha é enviada a um servidor.
Como usar este gerador de hash bcrypt
Usar este gerador de hash bcrypt online leva apenas alguns segundos e não exige conta nem instalação. A ferramenta funciona em qualquer navegador moderno no computador e no celular. Siga as etapas abaixo para gerar ou verificar um hash.
- Digite sua senha em texto simples no campo de entrada.
- Escolha um fator de custo, normalmente entre 10 e 12.
- Clique em Gerar para produzir o hash bcrypt.
- Para verificar, cole um hash existente e o texto simples e clique em Verificar.
O gerador cria um salt aleatório novo sempre que é executado. Isso significa que a mesma senha produz um hash diferente em cada geração. Esse comportamento é correto e esperado, e a função de verificação é a forma de confirmar uma correspondência.
Entendendo o formato do hash bcrypt
Todo hash bcrypt segue uma estrutura fixa que reúne quatro partes em uma única string. Entendê-la ajuda a depurar problemas de autenticação e confirmar se um hash é válido. O exemplo abaixo mostra cada segmento de um hash bcrypt real.
Um hash como $2b$10$oHLkY4emC3geWiN6anPYnevZAh9RtyHgQeOeGwWbWF9xlJidZsQDi é dividido de forma clara. O $2b$ indica a versão do bcrypt, 10 é o fator de custo, os 22 caracteres seguintes são o salt e os 31 caracteres finais são o hash. A string completa sempre tem 60 caracteres, o que facilita identificar hashes malformados.
Segmento | Exemplo | Significado |
|---|---|---|
| Versão | $2b$ | Identificador do algoritmo |
| Custo | 10 | Fator de trabalho, 2 elevado a esse valor |
| Salt | 22 caracteres | Salt aleatório para cada hash |
| Hash | 31 caracteres | O digest bcrypt |
Versões do bcrypt: $2a$, $2b$ e $2y$
O prefixo da versão informa às bibliotecas qual variante do bcrypt produziu o hash. A maioria das bibliotecas modernas usa $2b$ por padrão, a versão atual do OpenBSD. Ainda é possível encontrar prefixos mais antigos ou específicos de uma linguagem em sistemas reais.
O prefixo $2a$ é o original e continua amplamente compatível entre bibliotecas. PHP e Laravel produzem hashes $2y$, originados da implementação crypt_blowfish. Os três são verificados da mesma maneira, portanto um hash $2y$ do PHP é validado corretamente com a senha certa. Este gerador de hash bcrypt produz um prefixo padrão aceito por qualquer biblioteca compatível.
Escolhendo um fator de custo do bcrypt
O fator de custo, também chamado de fator de trabalho, controla a lentidão de cada hash. Aumentá-lo em um dobra o tempo de processamento, porque o número de rodadas equivale a 2 elevado ao custo. Um custo 10 significa 1.024 rodadas, enquanto um custo 12 significa 4.096 rodadas.
Valores de custo mais altos resistem melhor a ataques de força bruta, mas tornam cada login mais lento. Um valor entre 10 e 12 equilibra segurança e velocidade para a maioria das aplicações web atuais. Teste o tempo no seu próprio hardware, buscando cerca de 250 milissegundos por hash. Este gerador de bcrypt online permite visualizar como cada configuração de custo afeta a saída.
Verifique um hash com o gerador de hash bcrypt
A verificação é essencial porque não é possível comparar dois hashes bcrypt diretamente. A mesma senha produz um hash diferente a cada vez por causa do salt aleatório. A comparação de strings sempre falha, portanto um verificador apropriado é o único método confiável.
O verificador extrai o salt e o custo do hash armazenado e recalcula o hash do texto simples com esses mesmos valores. Se o resultado corresponder ao hash armazenado, a senha está correta. Cole o hash e a senha candidata nesta ferramenta para executar essa verificação com segurança no navegador.
Bcrypt para Laravel, PHP e Node.js
O bcrypt é o algoritmo de senha padrão na maioria dos frameworks web modernos. A função password_hash() do PHP usa bcrypt por padrão e retorna um hash $2y$. O Laravel envolve isso no helper Hash::make(), por isso um gerador de hash Laravel e um gerador bcrypt produzem o mesmo formato.
Desenvolvedores Node.js usam os pacotes bcrypt ou bcryptjs para obter resultados idênticos. Todos eles produzem a saída padrão de 60 caracteres criada por esta ferramenta. Você pode gerar um hash de teste aqui e inseri-lo diretamente no seed ou fixture do seu banco de dados.
Por que o bcrypt protege melhor as senhas
O bcrypt combina três defesas que hashes rápidos como SHA256 não possuem. Ele adiciona salt automaticamente a cada hash, portanto senhas idênticas nunca compartilham o mesmo digest. Também é deliberadamente lento, reduzindo drasticamente a velocidade de ataques de força bruta e de dicionário.
Seu fator de custo adaptável é a terceira e mais importante vantagem. Conforme o hardware fica mais rápido, você aumenta o custo para manter os hashes caros de quebrar. Um hash criado hoje pode permanecer seguro por anos apenas com a escolha de um fator de trabalho adequado. Para criar as próprias senhas, use esta ferramenta junto com nosso Gerador de senhas.
O limite de 72 bytes da senha
O bcrypt processa apenas os primeiros 72 bytes de qualquer senha. Os caracteres além desse ponto são ignorados, o que pode enfraquecer inesperadamente frases-senha muito longas. Bibliotecas antigas truncavam silenciosamente, enquanto as mais recentes rejeitam entradas muito longas com um erro.
Esse limite é o motivo pelo qual o WordPress pré-calcula o hash das senhas com SHA-384 antes de aplicar o bcrypt. Se suas senhas puderem exceder 72 bytes, aplique SHA-256 uma vez e depois use bcrypt no resultado. Para hashes específicos do WordPress, use nosso Gerador de hash de senha do WordPress. Para inspecionar digests que não são de senha, o Gerador de hash cobre de MD5 a SHA-512.
Perguntas frequentes
Perguntas Frequentes