Maior = mais lento + mais seguro. O custo 12 leva cerca de 4ms em um notebook típico; 10-12 é a faixa comum em produção.
Roda 100% no seu navegador - a senha e o hash nunca saem do seu dispositivo.
I am storing user passwords for a web app with at most 10 000 users. Compare bcrypt (cost 12), scrypt, and Argon2id for this workload: resistance to GPU cracking, memory requirements, DoS risk on the login endpoint, and the parameters you would actually deploy. Give a concrete recommendation and the exact parameter values.
O que faz
Bcrypt
HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
& Verify gera o hash de uma senha com bcrypt - o algoritmo construído de propósito para armazenar senhas - e confere uma senha contra um hash bcrypt existente. O hash deriva umsaltsaltRandom data mixed into each password before hashing, so identical passwords produce different digests and precomputed tables become useless.
aleatório novo de 16 bytes e executa o escalonamento de chave do EksBlowfish2^cost vezes, então você controla exatamente o quão cara é cada tentativa. A verificação recalcula o digest com o saltsaltRandom data mixed into each password before hashing, so identical passwords produce different digests and precomputed tables become useless.
e o custo do própriohashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
e diz se há correspondência. A ferramenta aceita hashes$2a$, $2b$ e $2y$, então funciona com hashes produzidos por Node, Go, Python, PHP, Java, pelo pgcrypto do PostgreSQL e por toda implementação derivada do OpenBSD.
Tudo roda no seu navegador, a partir de uma implementação de Blowfish escrita do zero (sem biblioteca de criptografia externa). A senha que você digita e o
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
que você cola nunca saem do seu dispositivo.Como usar
- Escolha um modo com o toggle
HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
/ Verify no topo. HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
: digite a senha (o botão de olho a revela), arraste o slider do fator de custo (4-16, padrão 12) - maior significa mais lento e mais seguro - e pressioneHashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
password. OhashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
$2b$aparece com um botão de copiar e um badge mostrando quanto tempo levou.- Verify: cole o
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
bcrypt e digite a senha a conferir. A ferramenta decodifica o hash ao vivo e mostra sua versão, custo esaltsaltRandom data mixed into each password before hashing, so identical passwords produce different digests and precomputed tables become useless.
. Pressione Verify password para receber um badge verde Match ✓ ou vermelho No match ✗. - Use Sample em qualquer modo para carregar entradas de exemplo (a amostra de verificação é um par real que corresponde).
Exemplos
Gerar o hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Senha: HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.correct horse battery staple → pressione
$2b$12$9IZSN8TXXnSIx4aI0Cd2DetqQ/3FT9d6KJ9fl96SnULIK5x5q/moq
Cada execução produz um
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
diferente - osaltsaltRandom data mixed into each password before hashing, so identical passwords produce different digests and precomputed tables become useless.
é aleatório novo a cada vez - e todos eles verificam contra a mesma senha.Verificar um hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Cole $2a$04$RPx7yiCLNb09VKAUBVNsnOVNzB1Zp/hE1qbDvGUs1aehNX5hE15su com a senha password → Match ✓. Os badges o decodificam como versão $2a$, custo 4,
saltsaltRandom data mixed into each password before hashing, so identical passwords produce different digests and precomputed tables become useless.
RPx7yiCLNb09VKAUBVNsnO.
Ler o formato do hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
$2b$12$ + 22 caracteres de
saltsaltRandom data mixed into each password before hashing, so identical passwords produce different digests and precomputed tables become useless.
+ 31 caracteres de digest = 60 caracteres no total. O12 é o custo: 2¹² = 4 096 rodadas de EksBlowfish foram executadas para construir o escalonamento de chave.
Bom saber
- Por que bcrypt vence o SHA-256 puro para senhas: SHA-256 é rápido - exatamente o que você não quer. Uma GPU moderna computa bilhões de SHA-256 por segundo, mas apenas dezenas de milhares de hashes bcrypt, porque o fator de custo do bcrypt força 2^cost rodadas sequenciais de escalonamento de chave e seu
saltsaltRandom data mixed into each password before hashing, so identical passwords produce different digests and precomputed tables become useless.
elimina rainbow tables e o reuso entre contas. Pela mesma razão, bcrypt também vence MD5 e SHA-1 de imediato - ambos estão quebrados para colisões e são baratos demais para computar. - Custo é um dial, não uma constante: escolha o custo mais lento que seus usuários e hardware toleram - mais ou menos 250ms-1s por
hashhashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
nos seus servidores de login. Hoje isso significa custo 10-12; aumente a cada poucos anos conforme o hardware acelera. A verificação paga o mesmo custo que o hash, então um custo absurdamente alto também desacelera os seus próprios logins e pode virar uma alavanca de negação de serviço no endpoint de login. - Limite de 72 bytes: bcrypt lê no máximo os primeiros 72 bytes da senha e esta ferramenta segue essa regra à risca. O conselho moderno é pré-hashear com SHA-256 se você precisa suportar senhas longas - mas faça com cuidado (aplique
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
no comprimento bruto antes, ou você herda as ambiguidades de byte nulo do SHA-256). - Nunca invente sua própria comparação: sempre verifique com uma comparação em tempo constante, como esta ferramenta faz - igualdade de strings sobre hashes vaza informação de tempo.
- Alternativas quando você pode escolher: Argon2id (memory-hard, venceu a Password
HashingHashingA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Competition) e scrypt são mais fortes contra atacantes com GPU/ASIC; bcrypt continua sendo uma base testada em batalha e suportada em todo lugar. - Ferramentas relacionadas: Password Strength Analyser, Password Generator, HMAC Generator.