Como gerar hashes MD5, SHA-256 e outros

· 4 min de leitura

Hashing converte qualquer entrada — uma senha, um arquivo, uma mensagem — em uma string de caracteres de comprimento fixo. A mesma entrada sempre produz o mesmo hash, mas mesmo uma pequena mudança na entrada produz um hash completamente diferente. Isso torna o hashing essencial para verificação de integridade, armazenamento de senhas e assinaturas digitais.

Como funciona o hashing

Uma função de hash recebe entrada de qualquer tamanho e produz saída de tamanho fixo. Por exemplo, "hello" em SHA-256 começa com 2cf24dba5fb0a30e..., "Hello" (com H maiúsculo) gera 185f8db32271fe25..., e "hello!" produz ce06092fb948d9ff....

Observe que mudar um único caractere (h minúsculo para H maiúsculo) ou adicionar um caractere muda completamente o hash. Isso é chamado de efeito avalanche.

Algoritmos de hash comuns

MD5 produz 32 caracteres, está quebrado (inseguro) e serve apenas para checksums legados e usos não relacionados à segurança. SHA-1 produz 40 caracteres, também quebrado, apenas para sistemas legados. SHA-256 produz 64 caracteres, é seguro, usado para integridade de arquivos e assinaturas digitais. SHA-512 produz 128 caracteres, seguro, para aplicações de alta segurança.

SHA-256 é o padrão atual para a maioria dos propósitos. MD5 e SHA-1 devem ser usados somente ao interagir com sistemas legados que os exijam.

Como gerar um hash

1. Escolha seu algoritmo — selecione MD5, SHA-1, SHA-256, SHA-384 ou SHA-512. Use SHA-256 a menos que tenha um motivo específico para outro. 2. Insira texto ou envie um arquivo — digite ou cole texto, ou selecione um arquivo para hashear. 3. Copie o hash — o resultado é uma string hexadecimal que você pode usar para verificação, armazenamento ou comparação.

Usos práticos

Verificação de integridade de arquivos — baixe um arquivo e compare seu hash com o hash oficial do publicador. Se coincidirem, o arquivo é autêntico e não corrompido.

Armazenamento de senhas — aplicativos armazenam hashes de senhas, não as senhas em si. Quando você faz login, sua entrada é hasheada e comparada ao hash armazenado.

Deduplicação de dados — hashear arquivos grandes para determinar rapidamente se dois arquivos são idênticos sem compará-los byte a byte.

HMAC para segurança de API — use HMAC (hash com chave secreta) para assinar requisições de API, garantindo que a requisição não foi adulterada em trânsito.

Dicas

Perguntas frequentes

Qual a diferença entre MD5, SHA-1 e SHA-256?

MD5 produz um hash de 128 bits (32 caracteres hex), SHA-1 produz 160 bits (40 caracteres) e SHA-256 produz 256 bits (64 caracteres). MD5 e SHA-1 são considerados criptograficamente quebrados para fins de segurança. SHA-256 é atualmente seguro e recomendado para verificação de integridade e aplicações de segurança.

É possível reverter um hash para obter os dados originais?

Não. Funções de hash são unidirecionais por design. Você não pode matematicamente reverter um hash de volta para sua entrada. No entanto, senhas comuns podem ser encontradas em tabelas de busca pré-computadas (tabelas rainbow), por isso senhas devem receber salt antes do hashing.

O que é HMAC?

HMAC (Hash-based Message Authentication Code) combina uma função de hash com uma chave secreta. Ele verifica tanto a integridade quanto a autenticidade dos dados — provando que os dados não foram adulterados e que foram criados por alguém que conhece a chave secreta.

Meus dados são enviados a um servidor ao gerar hashes?

Não. Todo o hashing roda no seu navegador usando a Web Crypto API. Seu texto e arquivos nunca saem do seu dispositivo.