Gerador de hash

RSS

Digite ou cole um texto para obter na hora os hashes MD5, SHA-1, SHA-256, SHA-384 e SHA-512, e compare com um hash esperado.

Funciona 100% no seu navegador. Nada do que você cola é enviado ou armazenado.

Como usar o gerador de hash

  1. Digite ou cole o texto do qual você quer gerar o hash.
  2. Os digests MD5, SHA-1, SHA-256, SHA-384 e SHA-512 são calculados enquanto você digita, exibidos em hexadecimal.
  3. Para conferir um valor, cole o hash esperado no campo de comparação; a ferramenta informa se ele corresponde.

Os hashes são calculados no seu navegador com a Web Crypto API e JavaScript; o texto que você informa nunca é enviado nem armazenado.

O que é um hash criptográfico?

Uma função de hash transforma uma entrada de qualquer tamanho em uma impressão digital de tamanho fixo, chamada de digest. Um bom hash criptográfico é:

  • Determinístico: a mesma entrada sempre produz o mesmo digest.
  • Unidirecional: não é viável recuperar a entrada a partir do digest.
  • Resistente a colisões: é inviável encontrar duas entradas diferentes com o mesmo digest.
  • Sensível: mudar um único bit da entrada muda cerca de metade dos bits da saída.
SHA-256("hello")  = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
SHA-256("hello\n")= 5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03

Como escolher um algoritmo

AlgoritmoTamanho do digestSituação
MD5128 bitsQuebrado: é possível gerar colisões rapidamente em hardware comum. Use apenas para checksums sem finalidade de segurança.
SHA-1160 bitsQuebrado quanto à resistência a colisões: colisões práticas já foram demonstradas publicamente. Está sendo abandonado.
SHA-256256 bitsSeguro e a escolha moderna mais comum.
SHA-384 / SHA-512384 / 512 bitsSeguros; o SHA-512 pode ser mais rápido que o SHA-256 em CPUs de 64 bits.

Para qualquer coisa relacionada à segurança (assinaturas, certificados, integridade de downloads de espelhos não confiáveis), use SHA-256 ou mais forte. MD5 e SHA-1 continuam aceitáveis apenas para detectar corrupção acidental, quando ninguém está tentando forjar uma correspondência.

Armadilhas comuns

Hash não é criptografia

A criptografia é reversível com uma chave; o hash não é reversível de forma alguma. Você não pode "descriptografar" um hash. Entradas curtas ou comuns ainda podem ser encontradas por tentativa: um atacante simplesmente gera o hash de valores candidatos até um coincidir, e é por isso que existem tabelas de consulta de MD5 de palavras comuns.

Nunca guarde senhas com um hash rápido simples

MD5, SHA-1 e até o SHA-256 foram projetados para serem rápidos, o que permite aos atacantes testar um número enorme de tentativas de senha por segundo em GPUs. Guarde as senhas com uma função de hash de senhas própria, deliberadamente lenta e com salt: Argon2id, scrypt ou bcrypt. Elas adicionam um salt único por senha e um fator de trabalho ajustável.

# Não faça isto
stored = sha256(password)

# Faça isto (Python, argon2-cffi)
from argon2 import PasswordHasher
stored = PasswordHasher().hash(password)

Diferenças invisíveis na entrada

Uma quebra de linha no fim, uma terminação de linha do Windows (\r\n) ou uma normalização Unicode diferente produz um hash completamente diferente. O echo hello | sha256sum gera o hash de hello\n; use printf 'hello' ou echo -n para obter o resultado acima. Esta ferramenta gera o hash dos bytes UTF-8 exatamente do que você digitou.

Como verificar checksums de arquivos

Downloads de software costumam publicar um checksum SHA-256. Calcule o hash do arquivo que você baixou e compare com o valor publicado:

SistemaComando
Linuxsha256sum file.iso
macOSshasum -a 256 file.iso
Windows PowerShellGet-FileHash file.iso -Algorithm SHA256
Windows cmdcertutil -hashfile file.iso SHA256

No Linux, sha256sum -c SHA256SUMS confere todos os arquivos listados em um arquivo de checksums. Um checksum comprova que o arquivo é o mesmo que o publicador usou para gerar o hash; ele só comprova a autenticidade se o próprio checksum vier de uma fonte confiável, como um arquivo assinado ou uma página HTTPS. Você pode confirmar o certificado de um site com o Verificador de certificado SSL.

Dica: os digests em hexadecimal não diferenciam maiúsculas de minúsculas. 2CF24DBA... e 2cf24dba... são o mesmo hash. Algumas ferramentas geram Base64 em vez de hexadecimal; converta com a ferramenta Codificar e decodificar Base64 antes de comparar.

Perguntas frequentes

Um hash pode ser revertido ou descriptografado?

Não. As funções de hash descartam informação por projeto. Entradas curtas ou comuns podem ser recuperadas por tentativa e comparação, mas não revertendo a função.

O MD5 ainda é seguro para usar?

Não para segurança. É trivial produzir colisões, então o MD5 não deve ser usado em assinaturas, certificados ou senhas. Ele ainda serve para perceber corrupção acidental de arquivos ou como chave de cache.

Qual hash devo usar para senhas?

Nenhum dos desta página. Use Argon2id, scrypt ou bcrypt por meio de uma biblioteca mantida, que cuida do salt e dos fatores de trabalho para você.

Por que meu hash é diferente do de outra ferramenta?

Geralmente porque a entrada é diferente: uma quebra de linha ou um espaço a mais, outra codificação de caracteres, ou o hash de um arquivo em vez do texto do seu conteúdo. Compare os bytes exatos usados para gerar o hash.

Atualizado

Copiado para a área de transferência