Desmistificando o Hashing Criptográfico: Por que é Irreversível e como Protege as suas Palavras-passe
No mundo da cibersegurança, o hashing é um dos conceitos mais fundamentais, mas frequentemente mal compreendido. É o escudo invisível que protege as suas palavras-passe, verifica a integridade dos seus downloads e alimenta a blockchain.
Mas o que é exatamente um hash? Por que não podemos “descriptografá-lo”? E o mais importante, se é irreversível, como é que um website sabe que inseriu a palavra-passe correta?
1. O que é uma Função de Hash?
Uma função de hash criptográfica é um algoritmo matemático que recebe uma entrada (ou “mensagem”) de qualquer tamanho e a transforma numa string de caracteres de tamanho fixo, que normalmente parece uma sequência aleatória de letras e números.
As Regras de Ouro do Hashing:
- Determinístico: A mesma entrada produzirá sempre exatamente o mesmo hash.
- Rápido de Calcular: O algoritmo deve ser rápido o suficiente para uso prático.
- Tamanho de Saída Fixo: Quer faça o hash de uma única palavra ou de uma biblioteca inteira, o comprimento da saída permanece o mesmo (ex: 256 bits para SHA-256).
- Efeito Avalanche: Uma pequena alteração na entrada (como mudar uma única letra) resulta num hash completamente diferente.
2. Por que o Hashing é Irreversível?
Ao contrário da Encriptação, que é uma rua de dois sentidos (pode encriptar e depois descriptografar com uma chave), o Hashing é uma rua de sentido único. Uma vez que tenha um hash, não pode “revertê-lo” para obter os dados originais.
A Analogia da “Mistura de Tintas”
Imagine que tem um balde de tinta azul e um balde de tinta amarela. Se os misturar, obtém verde. Embora seja fácil criar verde a partir de azul e amarelo, é fisicamente impossível pegar nessa tinta verde e separá-la perfeitamente de volta nos baldes originais azul e amarelo.
A Razão Matemática: Perda de Informação
Os algoritmos de hashing são projetados para descartar informações intencionalmente. Por exemplo, se tivesse uma “regra de hash” simples que dissesse: “Some os números e use apenas o último dígito”, então:
- Entrada
15->1+5 = 6 - Entrada
24->2+4 = 6
Se vir apenas o resultado 6, não tem forma de saber se a entrada original foi 15, 24, 33 ou qualquer outra combinação. Em algoritmos do mundo real como o SHA-256, a complexidade é astronómica, mas o princípio mantém-se: a informação é condensada e descartada.
3. Se é irreversível, como funciona a verificação da palavra-passe?
Esta é a pergunta mais comum: Se um website armazena a minha palavra-passe como um hash e não pode revertê-lo, como é que sabe que fiz login corretamente?
A resposta é simples: Eles não verificam a palavra-passe; eles verificam o hash.
O Fluxo de Verificação:
- Registo: Quando cria uma conta, o servidor recebe a sua palavra-passe (ex:
MeuSegredo123), faz o hash e armazena apenas o hash na base de dados. - Tentativa de Login: Quando tenta fazer login, insere a sua palavra-passe novamente.
- A Comparação: O servidor recebe a palavra-passe que acabou de digitar e passa-a pelo mesmo algoritmo de hashing.
- A Correspondência: O servidor compara o novo hash com o hash armazenado.
- Si
Hash(Entrada)==Hash Armazenado, a palavra-passe deve estar correta. - Se não coincidirem, a palavra-passe está errada.
- Si
O servidor nunca “sabe” realmente qual é a sua palavra-passe. Apenas sabe que a entrada que forneceu produz a impressão digital matemática esperada.
4. Segurança Moderna: Adicionar “Sal” (Salt)
Como o hashing é determinístico, uma palavra-passe comum como password123 produzirá sempre o mesmo hash. Os hackers usam “Rainbow Tables” (listas pré-computadas de hashes para palavras-passe comuns) para as quebrar instantaneamente.
Para evitar isto, os sistemas modernos usam um Salt — uma string aleatória adicionada à sua palavra-passe antes de ser processada pelo hash:
Hash(Palavra-passe + Salt) = Hash Seguro
Isto garante que mesmo que dois utilizadores tenham a mesma palavra-passe, os seus hashes armazenados serão completamente diferentes.
Resumo
| Conceito | Propósito | Reversibilidade |
|---|---|---|
| Encriptação | Comunicação secreta | Reversível (com chave) |
| Hashing | Integridade de dados e segurança de palavras-passe | Irreversível |
O hashing é a pedra angular da confiança digital moderna. Ao transformar dados sensíveis em impressões digitais irreversíveis, podemos verificar identidades e proteger sistemas sem nunca precisar de expor os segredos originais.