Pular para o conteúdo
>_ITDITDPlataforma de Segurança Web

Glossário

O que é um sal? O 'tempero' por usuário adicionado ao hash de uma senha

Um sal é um valor aleatório, diferente para cada usuário, adicionado antes do hash de uma senha. Por que é necessário: faz a mesma senha ser armazenada de forma diferente para cada um, derrotando rainbow tables e quebra em massa.

Publicado 2026-06-27 Atualizado 2026-06-27 3 min de leitura

"Sal" surge no momento em que você fala sobre hashing de senha. Como o sal na culinária, adicionar uma pitada ao hash muda drasticamente o cenário de segurança. Veja como funciona e os pontos-chave (sem passos de ataque).

Por que o "tempero" funciona

Sem um sal, usuários com a mesma senha obtêm o mesmo hash armazenado. Isso entrega ao invasor dois atalhos: uma tabela de consulta pré-computada (uma rainbow table) acerta direto, e "quebrar uma conta serve para todos com a mesma senha".

Adicione um sal e a mesma "password123" é armazenada como algo completamente diferente para cada usuário.

Sem sal: "password123" → mesmo hash para todos (a tabela acerta na hora)
↓ adicione um sal por usuário
Alice: sal_a + password123 → hash X
Bob: sal_b + password123 → hash Y (≠ X)
Mesma senha, sais diferentes → valores armazenados diferentes para cada um. Tabelas pré-computadas param de funcionar.

Equívocos comuns vs. a verdade

Equívoco

  • Um sal precisa ser mantido em segredo
  • Um único sal compartilhado para todos os usuários serve
  • Um sal torna até senhas fracas seguras

A verdade

  • Um sal pode ser público (armazene-o com o hash)
  • Um valor aleatório diferente por usuário (idealmente por senha)
  • Um sal defende contra "pré-computação e quebra por reuso"; a força bruta é tratada por um hash lento

A visão deste site: um sal não é uma pimenta

Frequentemente confundida com um sal está a pimenta (pepper): um valor secreto adicionado a todos, mantido em outro lugar que não o banco de dados (configuração da aplicação ou um gerenciador de chaves). Um sal (público, por usuário) e uma pimenta (secreta, global) têm trabalhos diferentes — nenhum substitui o outro. Na prática, porém, a primeira prioridade é simplesmente usar sal + um hash lento corretamente via bcrypt/Argon2.

Leia a seguir

FAQ

QUm sal precisa ser mantido em segredo?
A

Não. Um sal não é uma 'chave secreta' — pode ficar armazenado ao lado do hash. Seu propósito não é o sigilo; é fazer a mesma senha ser armazenada de forma diferente para cada usuário, o que derrota a pré-computação (rainbow tables) e a quebra em massa por reuso. A coisa que você mantém em segredo é um conceito diferente, uma 'pimenta' (veja abaixo).

QPosso reutilizar o mesmo sal para todos os usuários?
A

Não. O sal precisa ser um valor aleatório que difere por usuário (idealmente por senha). Um sal compartilhado faz usuários com a mesma senha armazenarem hashes idênticos, então um invasor consegue quebrar muitas contas com uma única execução de força bruta. Gere um novo com um RNG criptográfico a cada vez.

QPreciso implementar o sal eu mesmo?
A

Normalmente não. Hashes feitos para isso, como bcrypt, Argon2 e scrypt, geram e armazenam o sal para você (muitas vezes embutido dentro da string do hash). Em vez de adicionar um sal à mão, apoie-se nessas implementações padrão — é mais seguro e confiável.