Um hash é o resultado de uma função matemática que transforma qualquer conjunto de dados — como um texto, um arquivo ou até uma imagem — em uma sequência fixa de caracteres. Essa sequência, chamada de “valor de hash” ou “digest”, funciona como uma espécie de impressão digital única para o conteúdo original. A principal característica é que qualquer alteração, mesmo mínima, no conteúdo inicial gera um hash completamente diferente.
Por exemplo, usando o algoritmo SHA-256, a palavra “Segurança” pode se transformar em “A1B6D9A7F3D4D7B8E54F2A6183A9142B24E76820F55A0D7C9A77D112D5CFB2C8”. Se mudarmos para “segurança” (apenas trocando a letra S maiúscula por minúscula), o resultado será algo como “FB4AC3F67B40386C9166E8D8C4E7A7A8E3B41B452BCEB36B8EDE7422A6BDF177” — completamente diferente, mesmo que a alteração seja mínima.
Funções de hash são amplamente usadas na segurança da informação. Um exemplo comum é o armazenamento de senhas. Em vez de guardar a senha real “MinhaSenha123” no banco de dados, o sistema armazena o hash dela, como “1F3870BE274F6C49B3E31A0C6728957F5E90A4AEED5F…”. Quando o usuário faz login, o sistema calcula o hash da senha digitada e compara com o hash armazenado. Se bater, a senha está correta, mas em nenhum momento o servidor precisa conhecer ou armazenar a senha original.
Outro uso importante é na verificação de integridade de arquivos. Ao baixar um software, muitas vezes o site fornece o hash esperado, por exemplo “SHA1: 5D41402ABC4B2A76B9719D911017C592”. Depois do download, você calcula o hash do arquivo no seu computador e, se os dois coincidirem, significa que o arquivo não foi alterado ou corrompido durante a transferência.
É importante entender que funções de hash são projetadas para serem unidirecionais. Isso significa que, dado um hash como “7C4A8D09CA3762AF61E59520943DC26494F8941B”, não há um método viável para descobrir qual era o texto original, a não ser por tentativa e erro (ataque de força bruta ou dicionário).
Entre os algoritmos mais conhecidos estão MD5, SHA-1, SHA-256 e SHA-3. Alguns, como MD5 e SHA-1, já não são recomendados para segurança devido a vulnerabilidades que permitem encontrar colisões — quando dois conteúdos diferentes produzem o mesmo hash. Por isso, para aplicações críticas, é indicado o uso de funções mais modernas, como SHA-256 ou SHA-3, e, no caso de senhas, usar técnicas de “salting” e algoritmos específicos como bcrypt, scrypt ou Argon2 para aumentar a resistência contra ataques.