Gerar e verificar hashes seguros com bcrypt
Features
- Hash seguro: Utiliza custo adaptativo para tornar a quebra da senha extremamente demorada.
- Dois modos: Gere novos hashes ou compare senhas com hashes existentes.
- Rounds configuráveis: Ajuste o fator de custo de 4 a 31 de acordo com desempenho e segurança desejados.
- Sal automático: Cada hash já inclui um sal exclusivo e não requer armazenamento separado.
Usage Guide
- Defina a senha: Insira a senha que deseja proteger ou validar no campo de entrada.
- Configure o custo: Escolha o número de rounds conforme o ambiente (produção, testes ou alta segurança).
- Gere ou compare: Clique para gerar o hash ou informe o hash existente para verificar se a senha coincide.
Technical Details
Fundamentos do bcrypt
Bcrypt deriva do algoritmo Blowfish e incorpora um fator de custo que torna o processo deliberadamente lento, dificultando ataques de força bruta e protegendo bases de senhas.
Custo adaptativo
O fator de custo pode ser aumentado conforme o hardware evolui, mantendo o tempo de quebra inviável e garantindo longevidade à estratégia de proteção.
Geração de sal e verificação
Cada hash inclui um sal aleatório e o próprio custo, permitindo verificar senhas sem armazenar informações secretas adicionais.
Frequently Asked Questions
- Por que usar bcrypt em vez de um hash rápido?
- Algoritmos rápidos como MD5 ou SHA-1 são fáceis de quebrar hoje. Bcrypt é lento por design, tem sal automático e foi feito para armazenamento seguro de senhas.
- O que representa o número de rounds?
- É o fator de custo. Cada incremento dobra o tempo de processamento. Em produção recomenda-se 10–12, enquanto ambientes de alta segurança podem usar 14–16.
- Por que o mesmo password gera hashes diferentes?
- Cada hash inclui um sal aleatório único. Isso impede que atacantes reutilizem tabelas precomputadas e garante que hashes iguais não revelem senhas reaproveitadas.
- É possível reverter um hash bcrypt?
- Não. Trata-se de uma função unidirecional. Para validar uma senha basta gerar um novo hash com o mesmo custo e sal, e comparar os resultados.
- Bcrypt é confiável para produção?
- Sim. É suportado por Node.js, Python, PHP, Java e recomendado por OWASP e NIST. Garanta apenas que os hashes estejam protegidos e que o tráfego seja feito via HTTPS.
Related Documentation
- Artigo original do bcrypt - Publicação da USENIX que apresenta o algoritmo bcrypt e o conceito de custo adaptativo.
- OWASP Password Storage - Guia OWASP com recomendações para armazenamento seguro de senhas utilizando bcrypt.
- NIST SP 800-63B
- Documentação do bcrypt no Node.js - Biblioteca oficial bcrypt.js com exemplos de implementação em aplicações JavaScript.
- Wikipedia – bcrypt - Visão geral do algoritmo, história e adoção na indústria.