Gerador de bcrypt
bcrypt ainda é uma das escolhas mais seguras para armazenar senhas. É deliberadamente lento, deriva seu próprio sal e se adapta a melhorias de hardware através de um parâmetro de custo ajustável. Este gerador produz um hash bcrypt compatível com os padrões a partir de uma senha em texto simples, para que você possa criar um usuário de teste, migrar uma conta entre sistemas ou comparar valores com um hash existente armazenado na coluna users.password.
Como hash uma senha com bcrypt
-
1
Digite a senha em texto simples
Até 72 bytes — bcrypt truncará silenciosamente além disso.
-
2
Escolha um fator de custo
10 é o padrão atual; 12 é comum para novos sistemas; 14 é paranoico. Cada +1 dobra aproximadamente o tempo de hash.
-
3
Um sal aleatório é gerado
16 bytes de sal são extraídos de um RNG criptográfico e incorporados na string de hash resultante.
-
4
Copie o hash
A saída é uma string auto-descritiva como `$2b$12$...` que inclui versão, custo, sal e digestão.
Anatomia de um hash bcrypt
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
| | | |
| | sal (22 caracteres Base64) digestão (31 caracteres Base64)
| custo (2 dígitos, 4-31)
versão (2a, 2b, 2y — todos bcrypt)
A string inteira tem 60 caracteres. Colunas tipadas como VARCHAR(60) ou CHAR(60) são o esquema padrão.
Recomendações de fator de custo
| Custo | Tempo aproximado por hash (CPU 2024) | Caso de uso |
|---|---|---|
| 10 | ~80 ms | Padrão legado, ainda aceitável |
| 12 | ~300 ms | Base recomendada atual |
| 13 | ~600 ms | Aplicativos de maior segurança |
| 14 | ~1.2 s | Paranoico; atraso perceptível no login |
Cada incremento dobra o fator de trabalho. Se a latência de login abaixo de 500 ms é crítica, mantenha-se em 10-12.
Byte de versão: 2a vs 2b vs 2y
$2a$— Especificação original de 1999. A maioria das bibliotecas emitem hashes2a.$2b$— Revisão de 2014 corrigindo um bug de truncamento no crypt_blowfish. Preferido para novos hashes.$2y$— Tag específica do PHP, funcionalmente equivalente a$2b$.
Todos os três verificam entre si; apenas a tag na string de hash difere.
O que bcrypt protege
- Tabelas arco-íris — Sal único por hash derrota buscas pré-computadas.
- Quebra por GPU/ASIC — O cronograma de chaves Blowfish é limitado por memória e hostil a GPUs. Não é tão hostil a GPUs quanto Argon2, mas ainda é lento para força bruta.
- Vazamentos de banco de dados — O texto simples nunca é recuperável do hash sem força bruta.
O que bcrypt NÃO protege: senhas fracas (use um comprimento mínimo e verifique listas de vazamento), preenchimento de credenciais (use um segundo fator), phishing.
Limite de 72 bytes
bcrypt usa apenas os primeiros 72 bytes da senha. Entradas mais longas são truncadas silenciosamente, que é a mesma razão pela qual muitas bibliotecas agora recomendam pré-hash a senha com SHA-256 antes de alimentá-la ao bcrypt. Alternativas modernas (Argon2, scrypt) não têm tal limite.
Perguntas frequentes
Sim para armazenamento de senhas, com custo ≥ 12. A OWASP ainda o lista como um algoritmo aceitável. Argon2id é a escolha preferida para novos sistemas, mas migrar hashes bcrypt legados é uma preocupação de baixa prioridade.
Porque o sal é gerado aleatoriamente por hash. A verificação pega o sal do hash armazenado, re-hash a senha submetida com ele e compara.
A maioria das bibliotecas não expõe isso, e por boas razões — sais previsíveis derrotam o propósito. Use o sal gerado pela biblioteca; esse é o caminho seguro.
Sim — o fator de trabalho é simétrico. Verificar um hash de custo 14 leva 16x mais tempo do que verificar um de custo 10. Ajuste com seu throughput de login em mente.
Ferramentas relacionadas
Criptografar / Descriptografar AES
Criptografe e descriptografe texto de baixo risco com cifras AES do OpenSSL. A senha é resumida com SHA-256 e a saída Base64 contém IV mais texto cifrado.
Codificador de Cifra A1Z26
Codifique texto usando a cifra A1Z26 (A=1, B=2, ... Z=26) ou decodifique uma sequência de números de volta para letras, com separador personalizável.
Codificador de Cifra Atbash
Codifique ou decodifique texto com a cifra Atbash, uma substituição hebraica que mapeia A-Z para Z-A. A mesma operação criptografa e descriptografa.
Codificador e Decodificador Base32
Codifique e decodifique strings Base32 usando o alfabeto RFC 4648. Útil para segredos TOTP, tokens sem distinção de maiúsculas e identificadores digitados por humanos.
Codificador e Decodificador Base85
Codifique e decodifique Base85 nas variantes Adobe Ascii85 (PostScript/PDF) ou Z85 (ZeroMQ). Mais compacto que Base64 para dados binários.
Gerador de Hash bcrypt
Gere hashes bcrypt ou verifique uma senha em texto simples contra um hash bcrypt existente. Gere e verifique lado a lado em uma única ferramenta.