Uma função hash transforma qualquer entrada – uma palavra, um documento, uma imagem de disco de 4 GB – em uma impressão digital curta e de comprimento fixo. Esta ferramenta calcula algoritmos comuns (CRC-32, MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, Keccak-256) e cria HMACs, tudo em seu navegador. Este guia explica para que servem os hashes, quais são seguros em 2026 e a diferença entre hash, criptografia e armazenamento de senhas.

Para que servem os hashes

Hashing tem duas tarefas diárias: integridade e identificação. Ao baixar o software e comparar seu SHA-256 com o valor postado pelo editor, você confirma que os bytes chegaram intactos. Quando um commit do Git, um cache endereçado ao conteúdo ou um sistema de desduplicação precisa de um ID curto e estável para um blob de dados, um hash o fornece. A propriedade definidora é o determinismo: a mesma entrada sempre produz o mesmo resumo, e qualquer alteração — um bit invertido — produz um bit completamente diferente (o efeito de avalanche que você pode observar na impressão digital acima).

Quais algoritmos são seguros em 2026

CRC-32 serve para detecção de erros (por exemplo, arquivos ZIP), não para segurança. MD5 (1991) e SHA-1 (1995) são criptograficamente quebrados: os pesquisadores produziram colisões reais (dois arquivos diferentes com o mesmo hash), portanto, eles nunca devem ser usados ​​onde um invasor possa se beneficiar ao falsificar uma correspondência — assinaturas, certificados, detecção de adulteração. Eles permanecem adequados para somas de verificação não adversas, como detecção de corrupção acidental ou desduplicação de arquivos.

A família SHA-2 (SHA-256, SHA-384, SHA-512) e SHA-3 / Keccak-256 não têm colisões práticas conhecidas e são o padrão certo para qualquer coisa sensível à segurança. O SHA-512 costuma ser mais rápido que o SHA-256 em hardware de 64 bits, portanto, 'maior' não significa 'mais lento' aqui.

Hashing não é criptografia – e nem armazenamento de senha

A criptografia é reversível com uma chave; o hash é unilateral por design, portanto não há 'unhash'. Isso torna os hashes inúteis para confidencialidade, mas ideais para verificação.

As senhas são um caso especial. Hashes rápidos e brutos (até mesmo SHA-256) são uma escolha ruim porque sua velocidade permite que os invasores testem bilhões de suposições por segundo em um banco de dados roubado. O armazenamento moderno de senhas usa uma função de derivação de chave — bcrypt, scrypt ou Argon2 — que é deliberadamente lenta e adiciona um salt por usuário. Se você estiver fazendo hash de senhas, use uma delas, não os algoritmos desta ferramenta.

HMAC: provando quem enviou uma mensagem

Um hash simples prova que uma mensagem não foi alterada, mas qualquer um pode recalculá-la — portanto, não pode provar quem enviou a mensagem. Um HMAC corrige isso dobrando uma chave secreta compartilhada no hash. O remetente calcula HMAC(key, message) e o anexa; o receptor o recalcula com a mesma chave. Uma correspondência prova integridade e autenticidade. Este é o mecanismo por trás das assinaturas de webhook (Stripe, GitHub, Slack), assinatura de solicitação AWS e tokens JWT 'HS256'. Use uma chave longa e aleatória e compare os HMACs com uma verificação em tempo constante no lado do servidor.