This article has been translated from English to Brazilian.
Qual é a finalidade do hashing?
O principal objetivo do hashing é verificar a integridade de um dado.
Como o hash gerado é ÚNICO para os dados de entrada, ele funciona como uma "impressão digital" exclusiva dos dados de entrada.
Isso torna o hash útil para verificar a integridade dos dados enviados por canais de comunicação inseguros, como a Internet. A integridade dos dados significa apenas que os dados não foram alterados de forma não aprovada.
O valor de hash dos dados recebidos pode ser comparado com o valor de hash dos dados antes de serem enviados para determinar se os dados foram alterados.
Se eu publicar a mensagem e o valor de hash que gerei a partir dela, você poderá gerar um valor de hash a partir da mensagem que recebeu e comparar os valores de hash.
Usando um exemplo bem simples, digamos que estamos prestes a nos encontrar para almoçar e, logo antes de eu sair pela porta, lembro-me da última vez que estivemos juntos...

Embora sua personalidade fosse muito agradável, seu cheiro não era nada agradável. 😬
Então, quero enviar a você uma mensagem: "Por favor, use desodorante".
Mas, antes de enviar a mensagem, eu a executo por meio de uma função de hash (SHA-256). O hash é:
33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef
Primeiro, eu envio a você esse hash*.
ENTÃO eu envio a mensagem de texto real para você.
Quando você recebe a mensagem, pensa: "WTF? Ele realmente disse isso para mim? Ou a mensagem foi interceptada durante o trânsito e a mensagem original foi alterada?"

Então você passa a mensagem pela mesma função de hash.
33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef
Em seguida, você compara o seu hash com o hash que veio antes da mensagem de texto.
Se os dois valores de hash forem iguais, isso prova que você enviou a mensagem corretamente:
- A mensagem foi enviada corretamente.
- Que suas axilas realmente estão fedendo!
- A mensagem não foi deliberadamente alterada por alguém entre o momento em que eu a enviei para você e o momento em que você a recebeu.
É claro que, no mundo real, são nossos computadores que fazem tudo isso por nós.
E, com sorte, você mantém suas axilas com um cheiro fresco. 😅
*Tecnicamente, antes de enviar a você o hash, ele deve ser protegido de alguma forma, mas eu quis manter o exemplo simples. Como o hash fica protegido durante o trânsito será abordado em uma lição posterior.
Exemplo real de hashing: senhas on-line
Talvez isso o surpreenda, mas você provavelmente encontra o hashing em sua vida diária....sempre que faz login para verificar seu e-mail. 📧

Quando você cria um endereço de e-mail e uma senha, o provedor de e-mail provavelmente não salva a senha real.
Em vez disso, o provedor de e-mail executa a senha por meio de uma função de hash e salva o hash da sua senha.
Toda vez que você tenta fazer login na sua conta de e-mail, o provedor de e-mail faz o has h da senha que VOCÊ digitou e compara esse hash com o hash que ele salvou.
Somente quando os dois hashes coincidem é que você está autorizado a acessar seu e-mail.
Vejamos por que eles NÃO salvam sua senha real...
Se as senhas reais forem armazenadas e os hackers entrarem no sistema, eles poderão roubá-las. Isso definitivamente não é bom para os usuários que usam a mesma senha para vários sites!
Uma solução é fazer o hash da senha...
Ao fazer o hash de uma senha, a empresa protege as informações do usuário. Mesmo que um hacker invada o sistema, ele não terá acesso às senhas reais, apenas aos hashes.
Lembre-se de que os hashes são irreversíveis, portanto, é impossível para o hacker descobrir qual é a senha real apenas observando o hash. O hashing garante que os dados sejam armazenados em um estado embaralhado, o que dificulta o roubo.

Sempre que você faz login, o provedor de e-mail não armazena a senha em texto simples, tudo de que ele precisa é o hash.
Quando você digita sua senha, ela é executada por meio da função de hash.
O resultado é comparado com o hash que está salvo no banco de dados.
Se os valores de hash forem os mesmos, a senha está correta.
Se vocêdigitar a senha errada, o resultado será um hash diferente do que foi salvo. Os hashes NÃO corresponderiam e, portanto, a tentativa de login falharia.
Portanto, como você pode ver, uma função de hash distorce os dados e os torna ilegíveis. Mesmo que um hacker obtenha acesso ao servidor do seu provedor de e-mail, os detalhes armazenados não poderão ser descriptografados.


