# Escolhendo um Hash de Senha

> Armazenar senhas com segurança é um problema resolvido: use um hash de senha dedicado, com sal e lento, não um resumo cru. Este é um guia curto de decisão, do algoritmo a escolher aos parâmetros a definir e aos erros a evitar, alinhado às diretrizes da OWASP e do NIST.

Source: https://ronutz.com/pt-BR/learn/choosing-a-password-hash  
Updated: 2026-07-01  
Related tools: https://ronutz.com/pt-BR/tools/hash-preimage-finder

---

O armazenamento de senhas não é lugar para criatividade. O caminho seguro é bem estabelecido.

## A primeira regra

Nunca armazene senhas com um hash rápido comum (MD5, SHA-1, SHA-256) nem com criptografia reversível. Um hash rápido é exatamente o que a força bruta vence, e criptografia reversível significa que uma chave roubada expõe todas as senhas.

## Escolha um algoritmo

Em ordem de preferência: **Argon2id** como padrão, depois **scrypt**, depois **bcrypt** e **PBKDF2** apenas onde a conformidade FIPS obriga. Todos salgam automaticamente ou devem receber um salt único.

## Defina os parâmetros

Ajuste o fator de trabalho para que um único hash leve um tempo real escolhido no seu hardware, e eleve-o conforme o hardware melhora. A OWASP publica pontos de partida atuais, por exemplo configurações de memória e iteração do Argon2id e fatores de custo do bcrypt.

## Sal e, opcionalmente, pepper

Use um salt aleatório único por senha; as bibliotecas cuidam disso. Você pode adicionar um segredo do lado do servidor, um pepper, mantido fora do banco de dados, para que um vazamento apenas do banco não baste.

## Prefira comprimento a regras

Permita frases-senha longas, verifique novas senhas contra listas de vazamentos conhecidos como o NIST recomenda e evite regras de composição que prejudicam a usabilidade sem adicionar entropia.

## Migrando de um esquema fraco

Ao sair de um hash rápido, ou re-hasheie cada senha no próximo login ou envolva o hash antigo dentro da nova KDF, e nunca mantenha a versão em hash rápido por perto.
