Início/Tecnologias/Hashing de Senhas: Por Que Nunca Armazenar Senhas em Texto Puro
Tecnologias

Hashing de Senhas: Por Que Nunca Armazenar Senhas em Texto Puro

Armazenar senhas em texto puro é um risco grave para qualquer site. Entenda como o hashing de senhas, o uso de sal e algoritmos seguros como bcrypt e Argon2id protegem contas contra vazamentos e ataques, tornando o acesso dos usuários muito mais seguro.

15/09/2026
8 min
Hashing de Senhas: Por Que Nunca Armazenar Senhas em Texto Puro

Senha de uma conta pode parecer apenas uma sequência comum de caracteres, mas para um site, é uma das informações mais sensíveis que existem. Se um serviço armazena senhas dos usuários em texto puro, qualquer vazamento de banco de dados entrega aos invasores combinações prontas para acessar contas. Por isso, sistemas modernos utilizam o hashing de senhas - uma forma de guardar não a senha em si, mas sua representação digital irreversível.

Como funciona o hashing de senhas

Ao se cadastrar, a senha passa por um algoritmo especial que gera um hash. É esse valor que fica salvo no banco de dados. Quando o usuário faz login, o site calcula novamente o hash da senha digitada e compara com o valor armazenado. Se coincidirem, a senha está correta.

Esse método não torna o sistema totalmente invulnerável, mas reduz muito os danos de um vazamento. Mesmo com acesso ao banco, o atacante não vê as senhas originais - ele teria que tentar adivinhar cada senha a partir dos hashes, o que, se bem implementado, exige enorme poder computacional.

O que é o hash e por que ele é importante

Hashing de senhas é o processo de transformar uma senha em uma sequência de comprimento fixo usando uma função de hash. Por exemplo, a senha PixelBurn2026! vira algo totalmente diferente, impossível de ser revertido facilmente de volta ao texto original.

A função de hash é unidirecional: gerar o hash a partir da senha é simples, mas o caminho inverso - descobrir a senha a partir do hash - não é viável. Isso diferencia o hash da criptografia, em que dados podem ser descriptografados se você tiver a chave. Com hash, não existe essa "chave".

Um ponto essencial é a previsibilidade do resultado: a mesma senha, nas mesmas condições, sempre gera o mesmo hash. Assim, o site pode verificar a senha sem guardar seu valor original.

Porém, até uma pequena mudança na senha muda completamente o hash. "Password123" e "Password124" terão hashes totalmente diferentes, mesmo com só um caractere de diferença. E olhando o hash, não há como saber se as senhas originais eram parecidas.

O hash, por si só, não é proteção absoluta. O invasor não precisa "descriptografá-lo": ele pode testar várias senhas, calcular seus hashes e comparar com os roubados. Se bater, ele descobre a senha. Por isso, a segurança depende do algoritmo de hash, do uso de sal e da configuração adequada da complexidade computacional.

Como sites armazenam e verificam senhas dos usuários

Ao criar uma conta, o site nunca deve armazenar a senha em texto puro. O servidor processa a senha pelo algoritmo de hash e salva apenas o resultado, junto com informações adicionais para futuras verificações.

No próximo login, o usuário digita a senha, o servidor calcula o hash e compara com o valor salvo. Se forem iguais, o acesso é liberado.

Por isso, um serviço bem implementado não precisa conhecer ou mostrar a senha original após o cadastro. Ele lida apenas com o resultado do processamento. Por esse motivo, sites confiáveis não oferecem a opção de "mostrar a senha antiga" ao usuário.

Se a senha for esquecida, serviços seguros não a enviam de volta. Em vez disso, inicia-se um procedimento de redefinição: o usuário confirma o acesso à conta e define uma nova senha. Só o hash da nova senha ficará salvo.

Esse método é crucial diante de vazamentos de bancos de dados. Se houver senhas em texto puro, o invasor tem acesso direto. Se só houver hashes corretamente preparados, ele terá que descobrir as senhas originais, algo muito mais difícil dependendo do algoritmo, do sal e das configurações usadas.

Por que guardar senhas em texto puro é um grande risco

Se um site armazena senhas em texto puro, qualquer vazamento compromete diretamente as contas dos usuários. O atacante não precisa adivinhar ou decifrar nada - ele já tem em mãos os logins, e-mails e senhas válidas.

O problema se agrava ainda mais pelo reuso de senhas. Muitas pessoas usam a mesma senha para fóruns, e-mails, lojas online e outros serviços. Assim, o vazamento em um único site pode permitir que o invasor teste as credenciais em outras plataformas e acesse várias contas.

Veja dicas detalhadas sobre como agir após esses incidentes no artigo Como verificar vazamento de dados: guia completo para 2025.

Hash rápido não basta: por que SHA-256 não é seguro para senhas

Fazer apenas o hash não é suficiente se o algoritmo for muito rápido. SHA-256, por exemplo, é ótimo para verificar integridade de dados, mas não foi criado para proteger senhas. Placas de vídeo modernas conseguem calcular milhões desses hashes por segundo, tornando fácil descobrir senhas comuns por tentativa e erro.

O atacante normalmente não tenta inverter matematicamente o hash. Em vez disso, usa dicionários de senhas populares, combinações de palavras, datas e símbolos, calcula o hash de cada uma e compara com o banco vazado. Quanto mais rápido o algoritmo, mais tentativas por segundo.

Por isso, a proteção segura de senhas envolve vários níveis. Além do hash, usa-se um sal único e algoritmos projetados para exigir muito processamento, dificultando ataques em massa.

Sal: por que é essencial para hashing de senhas

Até mesmo um bom algoritmo de hash perde eficácia se senhas iguais gerarem sempre o mesmo hash. Se dois usuários escolherem a mesma senha, sem medidas extras, seus hashes serão idênticos. Isso facilita a análise e a descoberta rápida de senhas populares em bancos roubados.

A solução é o sal - um valor aleatório adicionado à senha antes do hash. Cada usuário recebe um sal único. Assim, mesmo que duas pessoas usem a mesma senha, os hashes serão diferentes.

Por exemplo, dois usuários escolhem "qwerty123". Se cada um tiver um sal diferente, os hashes finais não terão relação. O invasor não poderá calcular o hash de uma senha popular e encontrar todos os usuários que a usam.

O sal é especialmente importante contra bases de hashes pré-calculadas, conhecidas como rainbow tables. Sem sal, o atacante pode gerar hashes de milhões de senhas e procurar coincidências rapidamente. Com sal único, ele precisa atacar cada usuário separadamente.

O sal não precisa ser secreto - normalmente, ele é salvo junto ao hash no banco, pois o servidor precisa dele para verificar a senha. Sua função é tornar cada hash único.

No entanto, o sal sozinho não protege senhas fracas contra tentativas de adivinhação. Se a senha for simples, o ataque ainda é possível. Por isso, o sal deve ser usado com algoritmos específicos, que tornam cada tentativa computacionalmente custosa.

Algoritmos seguros para hashing de senhas: Argon2, bcrypt e outros

Não basta escolher qualquer função de hash criptográfica. Algoritmos como SHA-256 ou SHA-512 são projetados para serem rápidos, o que é bom para assinatura digital, mas ruim para proteger senhas. Quanto mais rápido o hash, mais tentativas o atacante pode fazer por segundo.

Por isso, para hashing de senhas são usados algoritmos específicos, que deliberadamente tornam o cálculo mais lento. Um dos mais conhecidos é o bcrypt, que permite ajustar o nível de dificuldade computacional: quanto maior o parâmetro cost, mais tempo leva para gerar o hash. Para o usuário, essa diferença é imperceptível, mas para o atacante, dificulta ataques em massa.

O Argon2 é ainda mais moderno, permitindo limitar não só o tempo de processamento, mas também a quantidade de memória necessária. Isso é importante contra ataques com GPUs e equipamentos especializados, capazes de processar milhões de operações em paralelo. O mais recomendado para armazenar senhas é o Argon2id, que combina as melhores características dos modos do Argon2.

Comparando bcrypt vs Argon2, não significa que bcrypt é inútil - ele ainda protege sistemas reais há décadas, se bem configurado. Mas em projetos novos, Argon2id é preferido por permitir ajustes mais finos de complexidade e uso de memória.

A segurança também depende dos parâmetros escolhidos. Se a dificuldade for baixa, até um algoritmo moderno pode ser processado rapidamente. Por isso, as configurações são revisadas periodicamente para acompanhar a evolução do hardware, mantendo o equilíbrio entre conveniência e proteção.

Além disso, a indústria está desenvolvendo métodos de acesso nos quais o usuário nem precisa mais digitar uma senha tradicional. Saiba mais neste artigo: Autenticação sem senha: o futuro seguro das senhas e passkeys.

Conclusão

O hashing de senhas permite que um site valide os dados do usuário sem guardar a senha em texto puro. Em vez da combinação original, fica salvo apenas o hash, e a cada login o servidor compara o hash do valor digitado com o armazenado.

Uma estratégia robusta de armazenamento não depende de uma única função de hash. O uso de sal único protege senhas iguais, e algoritmos como bcrypt e Argon2id tornam ataques em massa muito mais caros e lentos.

Se o serviço armazena senhas em texto puro ou usa algoritmos rápidos sem sal, um único vazamento pode colocar milhares de contas em risco. Por isso, sistemas modernos seguem uma regra simples: a senha do usuário nunca deve ser armazenada de uma forma que possa ser lida ou recuperada diretamente.

Tags:

hashing de senhas
segurança digital
armazenamento de senhas
algoritmos de hash
sal
argon2
bcrypt
vazamento de dados

Artigos Similares