Hash, digest e integridade: SHA-256, SHA-1 e MD5

Uma função hash recebe qualquer quantidade de dado e devolve uma sequência de tamanho fixo, de forma determinística e de mão única. Entenda as três propriedades que definem um bom hash, por que MD5 e SHA-1 saíram de uso e o papel do hash na assinatura fiscal.

Hash

Codificação, Segurança & Caracteres

Uma função hash (ou digest, "resumo") recebe qualquer quantidade de dado — um texto curto ou um arquivo inteiro — e devolve uma sequência de tamanho fixo. Três propriedades definem uma boa função hash: é determinística (o mesmo dado sempre gera o mesmo hash), é de mão única (não existe forma de reconstruir o dado original a partir do hash — não é encode, não tem "decode") e é sensível a qualquer mudança (alterar um único caractere no dado de entrada muda o hash inteiro, de forma imprevisível).

MD5 / SHA-1
Algoritmos antigos, ainda vistos em sistemas legados — hoje considerados fracos para fins de segurança.
SHA-256
Padrão atual, usado pela assinatura digital de documentos fiscais brasileiros.

Hash não é criptografia (não existe segredo nem chave envolvida) nem encoding (não existe operação inversa) — é uma "impressão digital" do dado. No fluxo fiscal, é a peça central da assinatura digital de um XML: em vez de criptografar o documento inteiro com a chave privada — lento para documentos grandes —, calcula-se o hash dele primeiro, e só o hash é assinado. Também serve para conferir integridade: comparar o hash de dois arquivos é uma forma rápida de saber se são byte a byte idênticos, sem precisar comparar o conteúdo inteiro manualmente.

Aplique o conceito nas ferramentas.

As ferramentas de JSON, XML, YAML, TOON, CSV, Base64, caracteres especiais e detecção de charset rodam localmente no navegador, sem enviar o seu documento fiscal para nenhum servidor.

Conteúdo de referência gratuito — sem necessidade de login.