Parâmetros de hashing de palavras-passe

Duas perguntas, resolvidas no seu navegador: as minhas definições atingem os mínimos da OWASP, e quantas iterações o meu hardware consegue realmente pagar?

Meça o seu próprio hardware

Executa PBKDF2 através do Web Crypto, cronometra-o e indica quantas iterações cabem no seu orçamento de tempo. Nada sai da página.

Ler antes de citar o número

Medido num separador do navegador, no aparelho que está a usar, não no seu servidor. A tomar como ordem de grandeza.

Verifique as suas definições atuais

Introduza o que a sua aplicação usa hoje. O veredicto compara-o com os mínimos publicados, nada mais.

Atinge o mínimo OWASP

Configuração atingida: m=19456 KiB, t=2, p=1

O paralelismo é mostrado mas não pontuado: a OWASP apresenta-o como um compromisso, não como um limiar.

Limiares lidos da OWASP Password Storage Cheat Sheet (2026-09-06)

Os mínimos publicados

São os valores listados pela OWASP Password Storage Cheat Sheet, transcritos sem interpretação. As cinco linhas Argon2id são apresentadas como equivalentes entre si, e as cinco de scrypt também: escolhe-se a que cabe no orçamento de CPU e RAM, não é exigido satisfazer as cinco.

Ordem de preferência indicada pela OWASP: Argon2id > scrypt > bcrypt > PBKDF2

Orçamento de tempo indicado: um hash deve demorar menos de um segundo. (1000 ms)

Argon2idmemoryiterations (t)parallelism (p)
46 MiBm=47104t=1p=1
19 MiBm=19456t=2p=1
12 MiBm=12288t=3p=1
9 MiBm=9216t=4p=1
7 MiBm=7168t=5p=1
scryptNrp
128 MiB2^17r=8p=1
64 MiB2^16r=8p=2
32 MiB2^15r=8p=3
16 MiB2^14r=8p=5
8 MiB2^13r=8p=10
PBKDF2iterations
HMAC-SHA-256600,000
HMAC-SHA-512220,000
HMAC-SHA-11,400,000
bcryptcost >= 10

O bcrypt limita ainda a entrada a 72 bytes, e a OWASP avisa contra um pré-hashing ingénuo, por causa do tratamento dos bytes nulos e do password shucking.

Limiares lidos da OWASP Password Storage Cheat Sheet (2026-09-06)

Porquê um banco de ensaio e não uma recomendação

Um número de iterações não é uma propriedade do algoritmo, é uma propriedade do seu hardware. Um valor confortável num servidor de 2026 pode bloquear um contentor partilhado. É por isso que a segunda metade desta página mede em vez de aconselhar.

A medição usa PBKDF2 através da API Web Crypto nativa do navegador. Nenhuma biblioteca é descarregada, nada é transmitido, e ambas as afirmações verificam-se no separador Rede do seu navegador.

O que esta medição não é

Um navegador não é o seu servidor de produção. O Web Crypto executa código nativo, mas executa-o no seu equipamento, dentro de um separador, ao lado de tudo o resto que tenha aberto. Leia o resultado como uma ordem de grandeza para a máquina que tem à frente, não como um banco de ensaio do seu backend. Argon2id e scrypt não são medidos aqui de propósito: nenhum é exposto pelo Web Crypto, e embarcar uma compilação WebAssembly mediria a compilação, não o seu servidor.

Perguntas frequentes

Que algoritmo escolher para código novo?

A OWASP coloca Argon2id em primeiro, depois scrypt se Argon2id não estiver disponível, depois bcrypt para sistemas antigos, depois PBKDF2 quando é exigida conformidade FIPS-140. Essa ordem é deles, não nossa.

A minha memória Argon2id é inferior a 47104 KiB. É uma reprovação?

Não necessariamente. A OWASP lista cinco configurações equivalentes, e uma memória menor é aceitável se o número de iterações subir para compensar: 19456 KiB com t=2, 12288 com t=3, 9216 com t=4, 7168 com t=5. O verificador desta página aprova as suas definições se atingirem qualquer uma das cinco.

Porque é que o verificador ignora o paralelismo?

Porque a OWASP apresenta-o como um compromisso, não como um limiar a ultrapassar. Mostramos o valor que introduz e apenas pontuamos memória e iterações. Dizê-lo é mais útil do que fingir uma precisão que a fonte não dá.

O banco de ensaio transmite a minha palavra-passe?

O banco de ensaio não usa a sua palavra-passe de todo. Deriva bits a partir de uma cadeia de sonda fixa e de um sal aleatório, apenas para cronometrar a operação. Nessa secção não existe qualquer campo de palavra-passe.

Quão atuais são estes números?

Foram lidos da OWASP Password Storage Cheat Sheet a 2026-09-06. A OWASP revê-os à medida que o hardware acelera: trate essa data como parte da resposta e siga a ligação à fonte para confirmar.