Hashing
Definição
Definição
Hashing é o processo de transformar uma entrada de dados (de qualquer tamanho) em uma saída de tamanho fixo, geralmente representada por uma sequência de caracteres alfanuméricos.
Essa transformação é feita por uma função de hash, que aplica operações matemáticas determinísticas para gerar o valor.
O resultado gerado é chamado de hash, digest ou resumo.
Hashing gera uma impressão digital dos dados, sem possibilidade de recuperar o original.
Hashing é um conceito fundamental em segurança da informação, usado para validar a integridade de dados, armazenar senhas de forma segura e otimizar comparações.
Por que usar
- Garantir integridade de dados: assegura que o conteúdo não foi alterado.
- Armazenar senhas de forma segura: em vez de salvar a senha real, salva-se o hash.
- Assinaturas digitais: dependem de hashing para gerar resumos das mensagens.
- Comparações rápidas: hashes permitem comparar grandes volumes de dados de forma eficiente.
Exemplo prático (Python) — Gerar hash com SHA-256
import hashlib
# Mensagem original
mensagem = "Programício é incrível!"
mensagem_bytes = mensagem.encode()
# Gerar hash SHA-256
hash_objeto = hashlib.sha256(mensagem_bytes)
hash_gerado = hash_objeto.hexdigest()
print("Mensagem original:", mensagem)
print("Hash gerado:", hash_gerado)
Saída
Mensagem original: Programício é incrível!
Hash gerado: 1a7f70582a4a5c4206e38542c5ed7c3e8c9f4d3b19687937fd1943040e0e02f9
(O hash é sempre o mesmo para a mesma mensagem de entrada)
O ciclo do hashing
[Mensagem Original] --> (Função de Hash) --> [Hash Fixo]
Entrada: qualquer dado (texto, arquivo, etc.)
Função: aplica operações matemáticas para gerar o resumo.
Saída: valor de tamanho fixo, representando os dados originais.