Voltar às ferramentas

Gerador & Verificador de Hash Bcrypt

Transforme uma palavra-passe num hash bcrypt $2b$, ou verifique uma palavra-passe contra um hash que já tenha. O hashing corre num Web Worker dentro do seu navegador — nada do que escreve é enviado para lado nenhum.

Entrada

Palavra-passe e custo

Um salt novo de 16 bytes é gerado para cada hash, pelo que a mesma palavra-passe dá um hash diferente de cada vez. É esse o propósito de um salt, não um erro.

10
4 · rápido14 · lento

Custo 10 significa 2^10 = 1,024 rondas de preparação de chave. Cada passo acima duplica o trabalho — para quem está a tentar quebrar um ficheiro de palavras-passe roubado, e para o seu próprio servidor em cada início de sessão. A maioria dos sistemas em produção fica entre 10 e 12.

Os três prefixos produzem bytes de hash idênticos para palavras-passe com menos de 72 bytes; só o rótulo difere. O crypt() incluído no PHP não reconhece $2b$, pelo que um hash $2b$ falhará silenciosamente em password_verify(). Escolha $2y$ para PHP.

O hashing corre num Web Worker dentro deste separador. A palavra-passe nunca é enviada para a Wespner nem para mais ninguém — não há qualquer pedido para a enviar.

Resultado

hash bcrypt

Prima “Gerar hash”.

Custo, medido aqui

O que esta definição lhe custa

Estimativa: um hash é cronometrado neste separador com custo 8 e todos os outros custos são extrapolados a partir disso, duplicando. O seu próprio hardware e navegador decidem o número.

Uma verificação aqui
a medir…
Tentativas por segundo
lista de 14,344,391 palavras

Esses números são de uma única thread de JavaScript. Um atacante real corre código nativo numa bancada de GPUs e é ordens de grandeza mais rápido — essa diferença é exatamente a razão pela qual o fator de custo tem de ser incómodo em vez de conveniente. O mesmo controlo também decide quanto CPU cada um dos seus próprios logins consome.

A ler a string

O que significam os 60 caracteres

$2b$12$LQv3c1yqBWVHxkd0LHAkCOYUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

versão
$2b$
custo
12 → 2^12 = 4,096 rondas
salt (22)
LQv3c1yqBWVHxkd0LHAkCO
hash (31)
YUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

Ambos os blocos usam o próprio alfabeto base64 do bcrypt, que começa em ./ e coloca os dígitos no fim — não é base64 padrão, e descodificá-lo como se fosse dá os bytes errados. Isso, mais a divisão 22/31, é uma forma rápida de confirmar que uma string é mesmo um hash bcrypt e não algo que apenas se parece com um.

Escolher um algoritmo

bcrypt, scrypt ou Argon2?

Esta ferramenta é apenas para bcrypt, de propósito. Aqui fica quando é a resposta certa e quando não é.

bcrypt
Exigente em CPU, 1999

Lento por design, mas depende apenas de tempo de CPU e de 4 KB fixos de memória. GPUs e FPGAs paralelizam-no muito melhor do que aos designs mais recentes. Continua a ser uma escolha perfeitamente respeitável, é suportado literalmente em todo o lado, e o seu limite de 72 bytes de palavra-passe é a sua aresta mais surpreendente.

scrypt
Exigente em memória, 2009

Adiciona um custo de memória ajustável, pelo que um atacante precisa de RAM por tentativa, não só de núcleos. Mais difícil de paralelizar de forma barata do que o bcrypt.

Argon2id
Recomendação atual

Vencedor da Password Hashing Competition de 2015 e o que a OWASP sugere agora para sistemas novos: controlos separados de tempo, memória e paralelismo, com a variante id a resistir tanto a ataques por GPU como por canal lateral. Se está a começar do zero e a sua plataforma o suporta, use-o. Se está a manter algo que já guarda hashes $2y$, o bcrypt com um custo sensato não é uma emergência — faça rehash no próximo login.

Prova

Verifique esta página com os vetores de teste publicados

Uma ferramenta de hashing que pede para ser confiada deve ser verificável. Estes são os vetores bcrypt de referência usados por implementações derivadas do OpenBSD; a página recalcula cada um a partir do seu próprio salt e compara carácter a carácter, depois gera e volta a verificar uma palavra-passe descartável em dois fatores de custo.

O lote executa 6 vetores publicados mais duas verificações de ida e volta.

Gere o seu próprio servidor de jogos?

Servidores de jogos Wespner com proteção DDoS, discos NVMe e ativação em poucos minutos.

Ver alojamento