função hash

função Hash  educar321.blogspot.com
processo matemático que transforma qualquer informação (texto, ficheiro, palavra-passe, imagem, etc.) num código de tamanho fixo.

Exemplo:

  • Texto: ola
  • Hash: 8d8f...a91c



Características principais

1. A mesma entrada gera sempre o mesmo resultado

Se fizeres hash de "ola" hoje e amanhã, o resultado será igual.

2. Uma pequena alteração muda completamente o hash

Exemplo:

  • ola
  • Ola

Geram hashes totalmente diferentes.

3. É praticamente impossível voltar atrás ou decifrá-la

O hash funciona como uma “impressão digital” dos dados.

Não foi feito para desencriptar.

 

Exemplo visual

"password123"
        
 HASH
        
"a665a45920422f9d..."

 

Onde é usado?

Palavras-passe

Os sites normalmente não guardam a password verdadeira.

Guardam apenas o hash.

Quando escreves a password:

  1. o sistema faz hash dela
  2. compara com o hash guardado
  3. se coincidir → acesso permitido

 

Verificar ficheiros

Quando descarregas um ficheiro, podes comparar o hash oficial.

Se o hash mudar:

  • o ficheiro foi alterado
  • pode estar corrompido
  • ou ter malware

 

Blockchain e criptomoedas

A Bitcoin usa hashes para ligar blocos de informação com segurança.

 

Assinaturas digitais

As assinaturas digitais normalmente assinam o hash do documento e não o documento inteiro.

 

Exemplos de algoritmos hash

  • MD5 (antigo/inseguro)
  • SHA-1 (já fraco)
  • SHA-256 (muito usado atualmente)

Exemplo:

SHA-256("ola")
=
"0d73...etc"

 

Analogia simples

Imagina:

  • o documento = uma pessoa
  • o hash = impressão digital

A impressão digital:

  • identifica
  • muda se houver alteração
  • mas não permite reconstruir a pessoa inteira

 

Diferença entre hash e encriptação

Hash

Encriptação

Normalmente irreversível

Reversível

Serve para verificar

Serve para esconder

Não usa chave

Usa chave

Ex.: guardar passwords

Ex.: mensagens secretas

 

Exemplo:

Encriptação

Mensagem → Encriptar → Texto secreto
Texto secreto → Desencriptar → Mensagem

Hash

Mensagem → Hash → Código final
(não há volta prática)