Hash vs criptografia vs codificação

Entenda quando os dados devem ser hasheados, criptografados ou codificados — e por que esses mecanismos não são intercambiáveis.

Hash, criptografia e codificação transformam dados, mas resolvem problemas diferentes. Misturá-los leva a armazenamento fraco de senhas, integrações quebradas e sessões de depuração confusas.

A versão curta: hash para impressão digital, criptografar para sigilo, codificar para transporte.

Hash gera uma impressão digital

Uma função de hash transforma a entrada em um digest de tamanho fixo. Pequenas mudanças na entrada produzem saídas bem diferentes, e um bom hash criptográfico é projetado para ser unidirecional.

Use hash para:

  • Verificação de integridade de arquivos.
  • Chaves de cache e impressões digitais de conteúdo.
  • Comparar dados sem armazenar o original.
  • Armazenamento de senhas apenas quando combinado com algoritmo de hash de senha e salt — não MD5 ou SHA-256 puro.

Um Gerador de hash ajuda a comparar digests esperados e reais durante a depuração.

Criptografia protege o sigilo

Criptografia é reversível se você tiver a chave. É a ferramenta certa quando os dados originais precisam ser recuperados depois — mas só por partes confiáveis.

Use criptografia para:

  • Segredos armazenados.
  • Mensagens privadas.
  • Campos sensíveis no banco de dados.
  • Dados enviados por canais seguros.

Se qualquer pessoa pode decodificar o valor sem chave secreta, não é criptografia.

Codificação muda a representação

Codificação adapta os dados a uma sintaxe ou canal de transporte específico. Em geral é reversível sem segredo.

Use codificação para:

  • Representação em texto Base64 de bytes.
  • Codificação percentual de URL em parâmetros de query.
  • Escape de entidades HTML em texto dentro de markup.
  • Escape de strings em JSON.

Codificação não é barreira de segurança. Base64 pode esconder o significado numa olhada rápida, mas não protege o valor.

Escolhendo o mecanismo certo

Pergunte qual problema você precisa resolver:

  • Precisa verificar se dois arquivos são idênticos? Hash.
  • Precisa armazenar um segredo e recuperá-lo depois? Criptografar.
  • Precisa colocar texto com segurança dentro de uma URL? Codificar.
  • Precisa armazenar senha? Use esquema de hash de senha, não criptografia genérica nem SHA puro.

Depurando a confusão rapidamente

Quando um valor parece ilegível, inspecione o contexto. Caracteres seguros para URL podem indicar codificação de URL ou Base64URL. Uma string hex de tamanho fixo pode ser hash. Um valor com metadados, IVs ou IDs de chave pode estar criptografado.

Boa depuração começa nomeando a transformação corretamente. Depois disso, a ferramenta certa costuma ser óbvia.

Ferramentas relacionadas

Use as ferramentas deste artigo

Gerador de hashhash / hmac / md5Codificador / Decodificador Base64base64 / encode / decodeCodificador / Decodificador URLurl / uri / encode

Aprenda o formato

Curso de HashHashes criptográficos: digests, algoritmos, integridade e erros comuns.Curso de Base64Aprenda Base64 desde os princípios: binário para texto, padding, URLs e armadilhas comuns.Curso de codificação de URLEntenda codificação percentual, query strings e a diferença entre encodeURI e encodeURIComponent.

Voltar aos artigos