This article has been translated from English to Portuguese.

Até agora, nas lições anteriores, aprendeste o que é o hashing e como funciona o hashing.

Mas, para entender realmente o que esses programas especializados fazem, é útil ver exemplos reais em ação!

See how hashing works!

Vamos ver como o processo de hashing funciona usando uma função de hash real.

Como SHA-256 é a função de hash escolhida pelo Bitcoin, vamos usá-la para o nosso exemplo.

Este é o nosso primeiro exemplo de entrada:

BabyPips.com é fixe como o gelo.

Quando passas pela função hash SHA-256, esta frase cria o seguinte valor hash, também conhecido como "digest" ou simplesmente como "hash":

A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57

Podes ver que o digest é uma combinação de letras e números. E tem exatamente 64 caracteres de comprimento.

Para além disso, não há muito mais que possas aprender ao olhar para este resumo. Não há padrões ou pistas sobre o que é a entrada. Parece apenas um monte de disparates.

O resultado pode parecer-te aleatório. Mas não há maneira de adivinhares a entrada apenas olhando para a saída.

Se voltares a passar a entrada pela função hash SHA-256, vais obter exatamente a mesma saída ("hash").

A mesma entrada produzirá SEMPRE a mesma saída.

Agora, vamos fazer uma alteração subtil ao input do primeiro exemplo e ver o que acontece:

BabyPips.com é fixe como os piolhos.

Repara que a letra "l" foi acrescentada ao início da palavra "ice" para soletrar "lice".

Aqui tens o novo resumo:

B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95

Agora vamos comparar os dois:

Entrada Digerir
BabyPips.com é fixe como o gelo. A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57
BabyPips.com é fixe como os piolhos. B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95

Podes ver que este é um resultado radicalmente diferente do primeiro digest!

Apesar de as entradas serem praticamente idênticas, a alteração de um único carácter gerou um resultado completamente diferente.

Lice is so cool

Os piolhos são bastante nojentos, por isso vamos fazer mais uma alteração ao input:

BabyPips.com é fixe como o arroz.

Agora vamos ver o que acontece:

FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A

Mais uma vez, tens uma entrada totalmente diferente!

Agora compara as três:

Entrada Digerir
AED.com é fixe como o gelo. A58E12FAC905B8F84EA2F64F888191A4B66A67CC45F8E7B7B0F94C37A134CB57
BabyPips.com é fixe como os piolhos. B8784EAEB1FC50719B2041FB1AEE30FF91516529CCB65B4B446CC4D5F6B4EB95
BabyPips.com é fixe como o arroz. FCA7032BE8CF7F3C0DD75B8DEB77412E452EA5E2275BAA4125123CD639ED2C9A

Vale a pena enfatizar que literalmente qualquer entrada pode ser colocada numa função hash.

Independentemente do comprimento da entrada, a saída terá sempre o mesmo comprimento fixo e parecerá sempre completamente aleatória.

Brinca com esta ferramenta para veres por ti próprio:

TRY tenta fazer uma pequena alteração ao que escreves e repara como o hash é muito diferente.

Não achas giro?! 🤓

Parabéns! Criaste os teus próprios hashes! 👏