Glossário

O que é hashing de senha? Armazenar senhas com segurança usando uma transformação irreversível

Hashing de senha guarda senhas com uma transformação de mão única. Por que MD5/SHA-256 puro é inseguro e a forma certa: sal + bcrypt ou Argon2.

Publicado 2026-06-27 Atualizado 2026-10-06 8 min de leitura
Nesta página

Você nunca deve armazenar uma senha como está no banco de dados. Então como você a armazena? A resposta é hashing. Veja como funciona e os pontos-chave para fazê-lo com segurança (sem passos de ataque).

Hashing ≠ criptografia

Esses dois são confundidos, mas os objetivos são opostos. A criptografia é "reversível com uma chave, para você poder lê-la de volta depois". O hashing é "de mão única — você não consegue revertê-lo". Uma senha é uma informação que nem mesmo o operador deveria precisar ler de volta, então um hash deliberadamente irreversível é o encaixe certo.

Criptografia (reversível)

texto puro ⇄ texto cifrado. a chave reverte. para dados que você lê de volta

Hashing (mão única)

senha → hash. não pode ser revertido. para armazenar senhas

Armazene senhas com um hash de mão única. A criptografia (reversível) tem o objetivo oposto.

No login, você verifica "aplicar o hash na senha digitada do mesmo jeito e ver se bate com o hash armazenado." Você nunca precisa recuperar a original.

Por que "MD5/SHA-256 puro" não basta

MD5 e SHA-256 são hashes rápidos. Isso é uma propriedade útil em outros contextos, mas uma fraqueza para o armazenamento de senhas: um invasor consegue computar um número enorme de tentativas por segundo contra um hash vazado.

  • Rainbow tables: uma tabela pré-computada gigante de "senha comum → seu hash". Com um hash puro, uma correspondência é encontrada só consultando-a.
  • Força bruta: quanto mais rápido o hash, mais tentativas por unidade de tempo — ou seja, mais fácil de quebrar.

Hashes de uso geral vs hashes de senha

Os dois se chamam "hash", mas foram feitos para tarefas diferentes. Só a coluna da direita serve para armazenar senhas.

Hash de uso geral (MD5, SHA-1, SHA-256)Hash de senha (Argon2id, bcrypt, scrypt, PBKDF2)
Feito paraDetectar alteração de arquivos, assinaturas etc.Armazenar senhas
VelocidadeO mais rápido possívelDeliberadamente lento (ajustável)
SalNão faz parte do designFaz parte do design (o PBKDF2 recebe o sal de quem o chama)
Ajuste do custoNão é possívelCusto, iterações ou memória; aumentado com o tempo
Para armazenar senhasNão useUse

A NIST SP 800-63B-4 também exige que as senhas sejam armazenadas com um esquema de hashing de senha que receba um sal e um fator de custo como entradas, com o custo tão alto quanto for prático sem prejudicar o desempenho e aumentado com o tempo.

As duas salvaguardas

1

Adicione um sal (um valor diferente por usuário)

Antes do hashing, misture um valor aleatório que difere por usuário (um sal). Agora a mesma senha é armazenada de forma diferente para cada um, o que derrota as rainbow tables e impede que uma única execução de quebra cubra senhas reutilizadas em várias contas.

2

Use um hash deliberadamente lento e feito para isso

bcrypt / Argon2 / scrypt permitem tornar o cálculo intencionalmente caro (um parâmetro de custo). Uma lentidão que ninguém percebe em um login legítimo derruba a força bruta do invasor a uma taxa impraticável. O sal também já está embutido neles.

Casos reais: quando um aviso de vazamento diz "com hash"

Os comunicados de vazamento às vezes informam se as senhas estavam em texto puro, com hash ou criptografadas. Estes são casos que este site já cobriu, organizados pelo método de armazenamento.

CasoO que foi divulgado sobre as senhasO que isso significa para os usuários
Takufile-bin (2019)Armazenadas em texto puroLegíveis como estão. Outros serviços com a mesma senha também ficam em risco
Sakura Internet (2026) (em inglês)Algumas senhas iniciais não tinham hashQuem ainda usa uma senha inicial precisa trocá-la agora
Gyazo (2026) (em inglês)Hashes de senha vazaram; método não divulgadoPodem ser revertidos dependendo do método. A empresa pediu que os usuários trocassem as senhas

Dois pontos para ter em mente ao ler um aviso:

  • "Com hash" sozinho não diz se é seguro. MD5 puro e um hash lento com sal diferem enormemente na facilidade de recuperar as senhas
  • Se o método não for informado, aja como se fosse fraco. Troque a senha nesse serviço e em qualquer outro em que você use a mesma

Você pode verificar se seu endereço de e-mail aparece em vazamentos anteriores com como verificar se sua senha vazou.

Como verificar seu próprio site e suas contas

1

Como usuário: observe como funciona a redefinição de senha

Se o "esqueci minha senha" envia sua senha original por e-mail, o serviço muito provavelmente a armazena em texto puro ou de forma reversível. Não use ali uma senha que você usa em qualquer outro lugar.

2

Como usuário: verifique a força da sua senha

O hashing protege melhor senhas longas e difíceis de adivinhar. Confira uma estimativa aproximada de força com o verificador de força de senha e deixe o armazenamento com um gerenciador de senhas.

3

Como desenvolvedor: verifique qual função armazena as senhas

Encontre as funções que seu código usa para armazenar e verificar senhas. O password_hash() do PHP, a autenticação embutida do Django ou uma biblioteca bcrypt/Argon2 são específicos para senhas e cobrem o básico. Qualquer chamada direta a md5(), sha1() ou sha256 é candidata a migração.

4

Como desenvolvedor: verifique os valores armazenados e as configurações

Como identificar os hashes armazenados, as configurações mínimas da OWASP e como migrar de algoritmos fracos estão em como armazenar senhas com segurança.

A visão deste site: não construa você mesmo

Supor que "MD5 mais um sal já basta" é um erro comum. O armazenamento seguro de senhas também depende de gerar e armazenar o sal, ajustar o custo e lidar com diferenças de tempo. Em vez de montar isso você mesmo, apoie-se na função oficial de senha da sua linguagem/framework (a maioria usa bcrypt/Argon2 por baixo). Para novos sistemas, faça do Argon2id sua primeira escolha.

Fontes (primárias)

  • NIST, "SP 800-63B-4 Digital Identity Guidelines: Authentication and Authenticator Management" (agosto de 2025) — pages.nist.gov (esquemas de hashing que recebem um sal e um fator de custo; aumento do custo com o tempo)
  • OWASP, "Password Storage Cheat Sheet" — cheatsheetseries.owasp.org (hashing vs criptografia, algoritmos recomendados, fator de trabalho)
  • RFC 9106, "Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications" — rfc-editor.org
  • As fontes de cada caso (os comunicados das próprias empresas) estão listadas nos artigos deste site indicados nos links

Leia a seguir

Classificação

O CWE classifica os tipos de fraqueza por trás das vulnerabilidades; o MITRE ATT&CK classifica as técnicas dos atacantes. Ambos são mantidos pela MITRE e amplamente usados para rotular vulnerabilidades e regras de detecção.

ATT&CK (técnica de ataque)

CWE™: Copyright © 2006–2026, The MITRE Corporation. CWE is a trademark of The MITRE Corporation. The MITRE Corporation hereby grants you a non-exclusive, royalty-free license to use CWE for research, development, and commercial purposes. Any copy you make for such purposes is authorized on the condition that you reproduce MITRE’s copyright designation and this license in any such copy. CWE Terms of Use

© 2026 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation. MITRE ATT&CK and ATT&CK are registered trademarks of The MITRE Corporation. The MITRE Corporation (MITRE) hereby grants you a non-exclusive, royalty-free license to use ATT&CK® for research, development, and commercial purposes. Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ATT&CK Terms of Use

FAQ

QComo o hashing difere da criptografia?
A

A criptografia é reversível: com a chave você descriptografa os dados de volta, que é o que se quer para dados que você vai ler novamente. O hashing é de mão única — você não consegue revertê-lo. Uma senha não precisa, de fato, ser lida de volta, nem mesmo por você, então um hash deliberadamente irreversível serve. Mesmo que o banco de dados seja roubado, você não consegue extrair as senhas originais direto dos hashes.

QHashing com MD5 ou SHA-256 é seguro o bastante?
A

Não, não por si só. MD5/SHA-256 são hashes 'rápidos', então um invasor consegue testar um número enorme de tentativas por segundo, e senhas comuns caem diante de força bruta ou rainbow tables (tabelas de consulta pré-computadas). Para deixá-lo seguro, adicione um 'sal' por usuário e use um hash deliberadamente lento e feito para isso (bcrypt, Argon2 ou scrypt).

QQual eu devo realmente usar?
A

Para novos sistemas, Argon2 (especialmente Argon2id) é a primeira escolha, com bcrypt ou scrypt como alternativas sólidas. Todos eles já trazem o sal e um fator de custo ajustável no design. Em vez de montar MD5+sal você mesmo, use essas implementações padrão (as funções oficiais da sua linguagem/framework) — é mais seguro e confiável.

QUma senha com hash pode ser quebrada?
A

Não dá para calcular a senha de volta a partir do hash. Mas senhas candidatas podem passar pelo mesmo hash e ser comparadas para ver se batem. Por isso senhas curtas ou comuns são fáceis de encontrar, principalmente quando o algoritmo é rápido. Se a senha for longa, não reutilizada e armazenada com um hash lento com sal, encontrá-la é impraticável.

QPor que um serviço não me diz minha senha antiga quando eu a esqueço?
A

Porque um serviço que faz hashing corretamente também não tem sua senha original. É por isso que o processo é uma redefinição (você escolhe uma nova). Por outro lado, um serviço que envia sua senha original por e-mail muito provavelmente a armazena em texto puro ou de forma reversível.

QDevo trocar minha senha se uma empresa disser que hashes de senha vazaram?
A

Sim. As empresas muitas vezes não divulgam o método de hashing, e um método fraco pode ser revertido. Troque também em qualquer outro serviço em que você use a mesma senha ou uma levemente modificada.