Gerador e Verificador de Bcrypt
Gera hashes bcrypt de palavras-passe e verifica uma palavra-passe contra um hash existente, inteiramente no teu navegador.
A carregar Gerador e Verificador de Bcrypt… Se nada acontecer, ativa o JavaScript.
O bcrypt é uma função de hash de palavras-passe concebida em 1999 por Niels Provos e David Mazieres, criada especificamente para que as palavras-passe armazenadas resistam à quebra por força bruta. Ao contrário de resumos rápidos de uso geral como o MD5 ou o SHA-256, o bcrypt é deliberadamente lento e inclui um fator de custo ajustável que define quanto trabalho computacional cada hash exige. Cada hash bcrypt também incorpora um salt aleatório único, por isso dois utilizadores com a mesma palavra-passe produzem hashes completamente diferentes, e uma única cadeia de saída transporta tudo o que é preciso para verificar uma palavra-passe mais tarde: a versão do algoritmo, o custo, o salt e o resumo. Esse formato autossuficiente é a razão pela qual os hashes bcrypt podem ser armazenados diretamente numa coluna de base de dados.
Perguntas frequentes
As palavras-passe e os hashes que introduzo são enviados para algum lado?
O que é o fator de custo e que valor devo usar?
Porque é que o bcrypt inclui um salt automaticamente?
Posso reverter um hash bcrypt para a palavra-passe?
Como sabe o modo Verificar se uma palavra-passe corresponde?
Em que difere o bcrypt do SHA-256 no Gerador de Hash?
O que significam os prefixos $2a$ e $2b$?
O bcrypt tem um limite de comprimento da palavra-passe?
Sobre Gerador e Verificador de Bcrypt
Esta ferramenta tem dois modos. No modo Hash introduzes uma palavra-passe e escolhes um fator de custo de 8, 10 ou 12 rondas, e ela produz uma cadeia de hash bcrypt completa que começa por um marcador como $2a$ ou $2b$. Um custo mais alto duplica aproximadamente o trabalho a cada incremento, por isso 12 é nitidamente mais lento do que 10, que é o valor predefinido habitual. No modo Verificar colas um hash bcrypt existente e uma palavra-passe candidata, e a ferramenta indica se correspondem. A verificação funciona reexecutando o bcrypt com o salt e o custo extraídos do hash armazenado, e depois comparando o resultado, que é exatamente como um sistema de início de sessão verifica uma palavra-passe sem nunca a armazenar em texto simples.
Tudo corre localmente no teu navegador usando uma implementação de bcrypt em JavaScript. As palavras-passe e os hashes que introduzes nunca são carregados, transmitidos nem registados, o que torna a ferramenta segura para experimentar com credenciais reais enquanto aprendes, testas um backend ou preenches uma base de dados de desenvolvimento. Tem em conta que o bcrypt é uma função unidirecional: não há modo de descodificação, porque um hash correto não pode ser revertido para a palavra-passe original. É também distinta dos hashes rápidos da ferramenta Gerador de Hash. Usa o bcrypt (ou uma alternativa moderna como o Argon2) para armazenar palavras-passe, e reserva os resumos do tipo SHA para somas de verificação, verificações de integridade e impressões digitais que não sejam de palavras-passe.
Porque é que a lentidão é uma característica, não um defeito
A maioria do software é projetada para ser o mais rápida possível, mas o bcrypt foi deliberadamente concebido para ser lento, e essa decisão é todo o sentido. Quando Niels Provos e David Mazieres apresentaram o bcrypt na USENIX em 1999, construíram-no sobre o dispendioso passo de configuração de chave da cifra Blowfish e acrescentaram-lhe um fator de custo ajustável. A genialidade do design é que o custo não está fixado no algoritmo; à medida que os computadores ficam mais rápidos, os defensores podem simplesmente subir o custo para que a quebra de palavras-passe continue tão penosa como anos antes.
Isto importa porque a ameaça é assimétrica. Um servidor legítimo aplica o hash a uma palavra-passe por início de sessão, por isso um hash que demore um quinto de segundo mal se nota. Um atacante que rouba uma base de dados de palavras-passe, porém, quer tentar milhares de milhões de tentativas, e esse mesmo quinto de segundo por tentativa transforma uma tarde de quebra em séculos. Os hashes rápidos como o MD5 e o SHA-1 sem salt desmoronam-se perante as GPU modernas e o hardware especializado que testa dezenas de milhares de milhões de candidatos por segundo; a lentidão ajustável do bcrypt e o seu salt por palavra-passe travam ao mesmo tempo a força bruta e as tabelas arco-íris.
Como o fator de custo vive dentro de cada hash, um sistema pode atualizar a sua segurança de forma transparente ao longo do tempo. Quando um utilizador inicia sessão, o servidor pode verificar o custo incorporado no seu hash armazenado, e se estiver abaixo do objetivo atual, voltar a aplicar o hash à palavra-passe acabada de verificar com um custo mais alto e guardar o novo valor. O bcrypt envelheceu notavelmente bem desde 1999, e embora funções mais recentes como o scrypt e o Argon2 acrescentem dureza de memória para resistir ainda melhor a hardware especializado, o bcrypt continua a ser um valor predefinido sólido e amplamente suportado para o armazenamento de palavras-passe.