Gerador de Senha Bcrypt
Gere hashes bcrypt seguros para senhas instantaneamente no seu navegador. Escolha o fator de custo e faça o hash no cliente — completamente privado e gratuito.
Gere hashes bcrypt seguros para senhas instantaneamente no seu navegador. Escolha o fator de custo e faça o hash no cliente — completamente privado e gratuito.
bcrypt é uma função de hash de senha desenvolvida por Niels Provos e David Mazières em 1999, derivada da cifra Blowfish. Ao contrário das funções hash de uso geral, como SHA-256, o bcrypt é deliberadamente lento – e configuravelmente lento, por meio de um parâmetro de custo – que é exatamente a propriedade que um hasher de senha precisa. Uma função hash mais rápida permite que os invasores apliquem força bruta em mais candidatos por segundo; um mais lento os limita.
O bcrypt também incorpora salt por senha automaticamente, eliminando uma classe inteira de ataques baseados em tabelas Rainbow pré-computadas. Os parâmetros salt e cost são armazenados como parte da saída do bcrypt, portanto, a verificação precisa apenas do hash armazenado e da senha candidata – sem gerenciamento separado de salt. Essa combinação de lentidão, sal e formato independente tornou o bcrypt o hash de senha padrão por duas décadas e uma escolha forte hoje.
Existem alternativas modernas. Argon2 venceu a competição de hash de senha de 2015 e oferece resistência de memória além de resistência de tempo. scrypt oferece propriedades semelhantes. Para novos designs, Argon2id é a escolha recomendada. O bcrypt permanece aceitável e amplamente implantado, especialmente em ambientes onde o Argon2 não está disponível.
Armazenar senhas como texto simples é negligência médica. Armazená-los com um hash rápido como SHA-256 é um pouco melhor – as GPUs modernas computam bilhões de hashes SHA-256 por segundo, tornando possíveis ataques de força bruta contra qualquer senha comum em horas. A lentidão deliberada do bcrypt altera a economia: com fator de custo 12, um invasor gasta cerca de 250 ms por senha candidata, tornando a força bruta impraticável para qualquer senha não trivial.
O sal automático por senha do bcrypt também derrota ataques de tabela arco-íris. Dois usuários com a mesma senha produzem hashes bcrypt diferentes porque seus sais são diferentes. Comprometer o banco de dados de senhas não permite que um invasor identifique rapidamente senhas comuns ou ocorrências em tabelas pré-computadas.
Digite uma senha, escolha o custo e obtenha o hash.
bcrypt usa uma fase de configuração de chave da cifra Blowfish modificada, repetida 2 vezes o custo. O fator de custo é logarítmico – o custo 12 é duas vezes mais lento que o custo 11, quatro vezes mais lento que o custo 10. Essa escala logarítmica permite que os administradores aumentem o custo ao longo do tempo, à medida que o hardware melhora, sem redesenhar o sistema.
O formato de saída é $version$cost$saltAndHash onde saltAndHash é codificado em base64 com um alfabeto personalizado. A versão é normalmente $2b$ (a variante moderna com o bug envolvente corrigido) ou $2y$ (específico do PHP, equivalente). O sal tem 16 bytes; o hash tem 24 bytes; juntos, eles codificam 53 caracteres de base64 personalizado.
O comprimento máximo de entrada é de 72 bytes (limite de comprimento da chave Blowfish). Senhas mais longas são truncadas silenciosamente, o que é uma peculiaridade de longa data do bcrypt. A prática recomendada é limitar o comprimento da senha a 72 bytes ou pré-hash com SHA-256 para normalizar o comprimento antes do bcrypt.