Lição 2
Hash vs criptografia vs codificação
Como hashing difere de criptografia e codificação.
Desenvolvedores misturam hash, criptografia e codificação porque os três transformam dados em outra representação. Resolvem problemas diferentes.
Codificação: representação, não proteção
Codificação formata dados para transporte ou armazenamento. Base64, por exemplo, transforma binário em ASCII imprimível. Quem recebe o texto pode decodificar de volta. Codificação é reversível por design.
Criptografia: sigilo com chave
Criptografia protege confidencialidade. Com a chave correta, o ciphertext volta ao plaintext. Sem a chave, descriptografar deve ser impraticável. Responde: “Como manter isso legível só para quem está autorizado?”
Hash: impressão digital, não sigilo
Hash produz digest para comparação e integridade. É unidirecional no uso normal. Responde: “Estes bytes batem com uma impressão conhecida?” Não esconde dados de quem já tem a entrada.
Comparação rápida
| Mecanismo | Reversível? | Objetivo típico |
|---|---|---|
| Codificação | Sim | Formato de transporte / exibição |
| Criptografia | Sim (com chave) | Confidencialidade |
| Hash | Não (na prática) | Integridade / comparação |
Erro comum
Times codificam valores sensíveis em Base64 e acham que estão protegidos. Base64 não é criptografia. Publicar MD5 de um arquivo ajuda outros a verificar integridade, mas não impede leitura se já têm o arquivo.