Gerador de hash — MD5, SHA-1, SHA-256, SHA-512, CRC32 e HMAC

Gere hashes de textos ou arquivos com MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC32, verifique um checksum ou calcule um HMAC. Os arquivos nunca saem do seu dispositivo.

43 bytes. Quebras de linha e espaços no final contam; a maioria das queixas de “hash errado” vem de uma quebra de linha invisível.
Algoritmos
MD5…
SHA-1…
SHA-256…
SHA-512…
CRC32…
Maiúsculas/minúsculas, espaços e dois-pontos são ignorados. Uma linha inteira do sha256sum (“hash arquivo”) também funciona.

Textos e arquivos têm o hash gerado no seu navegador; os arquivos são lidos do disco em blocos e nunca são enviados. Ver todas as ferramentas grátis.

Encontrou um problema ou algo que poderia ser melhor? Lemos todas as mensagens e corrigimos rápido.

Este gerador de hash calcula checksums MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC32 de textos ou arquivos, todos de uma vez, no seu navegador. Use-o para conferir se um download bate com o checksum do site de quem o publicou, para obter um SHA-256 para um lockfile ou um atributo de Subresource Integrity, ou para calcular uma assinatura HMAC ao depurar um webhook. O texto é processado como bytes UTF-8, igual ao sha256sum, ao OpenSSL e à biblioteca padrão de qualquer linguagem de programação. Solte vários arquivos de uma vez e você recebe uma tabela de checksums de todos eles, além de um arquivo compatível com sha256sum que pode ser verificado com sha256sum -c; ou marque “Gerar o hash de cada linha separadamente” para processar uma lista inteira de strings de uma só vez.

Os arquivos são lidos do seu disco em fatias de 4 MB e passados a funções de hash em streaming, então uma ISO de vários gigabytes é verificada sem ser carregada na memória e sem enviar um único byte. O progresso aparece na tela e você pode cancelar. Uma limitação honesta: gerar hash numa aba do navegador é mais lento que numa ferramenta nativa, então para uma imagem de disco de 50 GB o sha256sum ou o certutil na linha de comando serão mais rápidos.

Como usar

  1. Escolha Texto, Arquivo ou HMAC no topo.
  2. Para texto, digite ou cole; os hashes se atualizam enquanto você digita. Para um arquivo, solte-o na caixa ou clique para escolhê-lo.
  3. Desmarque os algoritmos de que você não precisa antes de processar um arquivo grande; cada um acrescenta tempo.
  4. Cole o checksum de quem publicou o arquivo em “Comparar com o checksum esperado” para ver claramente se confere ou não.
  5. Mude a saída para Base64 ou hex em maiúsculas se o sistema com que você está comparando usar essa forma, e depois copie.
  6. Para muitos arquivos, selecione ou solte todos juntos: cada um é processado na sua vez, e você pode baixar um .txt no estilo sha256sum ou um CSV com todos os checksums.

Perguntas frequentes

Posso obter checksums de vários arquivos de uma vez?

Sim. Selecione ou solte até 500 arquivos juntos na aba Arquivo. Eles são processados um após o outro com os algoritmos que você marcou, cada um lido em blocos de 4 MB para que o uso de memória fique baixo, e um arquivo que não pode ser lido é marcado como falha sem interromper os demais. Baixe os resultados como um .txt no formato do GNU coreutils (igual à saída do sha256sum, md5sum ou sha512sum, para que o sha256sum -c possa verificá-lo) ou como um CSV com todos os algoritmos. Você também pode colar uma lista SHA256SUMS existente para conferir cada arquivo com ela.

Posso gerar o hash de uma lista de strings, uma por linha?

Sim. Na aba Texto, marque “Gerar o hash de cada linha separadamente”. Cada linha é processada sozinha como UTF-8, sem a quebra de linha, até 5.000 linhas, e a tabela pode ser copiada como texto separado por tabulações ou baixada como CSV.

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

São funções de hash com tamanhos de saída e níveis de segurança diferentes. O MD5 produz 128 bits e o SHA-1, 160 bits; os dois estão quebrados para fins de segurança, porque pesquisadores conseguem criar duas entradas diferentes com o mesmo hash (o MD5 desde 2004, o SHA-1 publicamente desde o ataque SHAttered, de 2017). O SHA-256 produz 256 bits e não tem ataque prático conhecido. Use SHA-256 ou SHA-512 para qualquer coisa ligada a segurança; MD5 e SHA-1 continuam bons para detectar corrupção acidental.

Como verifico o checksum de um arquivo?

Abra a aba Arquivo, solte o arquivo baixado e cole o checksum da página de download no campo de comparação. Se conferir, o arquivo que você tem é, byte a byte, o mesmo de que o publicador gerou o hash. Garanta que está comparando coisas equivalentes: um checksum SHA-256 tem 64 caracteres hexadecimais, o SHA-1 tem 40 e o MD5 tem 32. Para ter garantia de verdade, obtenha o checksum por HTTPS no site oficial, não no mesmo espelho do arquivo.

Um hash pode ser revertido ou descriptografado?

Não. Um hash é uma função de mão única: não há chave nem nada para descriptografar. O que os sites de “descriptografar MD5” fazem, na verdade, é procurar o hash em tabelas de strings comuns já processadas. É por isso que o hash de uma senha curta ou comum é fácil de achar, e por isso senhas devem ser armazenadas com um algoritmo lento e com salt, como bcrypt ou Argon2, nunca com um SHA-256 simples.

Por que meu hash não bate com o do meu código?

Os bytes de entrada são diferentes, geralmente de forma invisível. As causas comuns são uma quebra de linha no final (o echo acrescenta uma; use echo -n), finais de linha CRLF do Windows em vez de LF, uma codificação de texto diferente de UTF-8, espaços no início ou no fim, ou comparar um digest em hex com um em Base64. O hash muda completamente com a diferença de um único byte, então confira a contagem de bytes exibida abaixo da caixa de texto.

O que é HMAC e quando preciso dele?

O HMAC (RFC 2104) combina uma chave secreta com uma função de hash para produzir uma assinatura que só quem tem a chave consegue criar. Provedores de webhooks como Stripe, GitHub e Shopify assinam os payloads com HMAC-SHA256 para que você possa verificar se uma requisição veio mesmo deles. Não faça isso por conta própria como sha256(key + message): com SHA-256, essa construção fica vulnerável a ataques de extensão de comprimento, que o HMAC foi feito para evitar.

CRC32 é um hash?

É um checksum, não um hash criptográfico. O CRC32 é muito rápido e bom para detectar erros acidentais, como um bit trocado na transmissão, e por isso ZIP, gzip, PNG e Ethernet o usam. É trivial de falsificar de propósito, então nunca o use para provar que um arquivo não foi adulterado.

Qual hash usar para quê

• Verificar um download com o checksum do publicador: o algoritmo que ele publicou, geralmente SHA-256.

• Integridade em pontos sensíveis para a segurança (Subresource Integrity, lockfiles de pacotes, assinatura de código, certificados): SHA-256 ou SHA-384. Atributos SRI usam Base64, e é para isso que existe a opção de saída.

• Assinar uma requisição de API ou um webhook com um segredo compartilhado: HMAC-SHA256.

• Armazenar senhas: nenhum destes. Use bcrypt, scrypt ou Argon2id, que são lentos de propósito e usam salt. Um hash rápido permite que um atacante teste bilhões de palpites por segundo numa GPU.

• Deduplicação, chaves de cache, ETags e detecção de corrupção acidental: MD5, SHA-1 ou CRC32 servem e são rápidos, porque ninguém está tentando forjar uma colisão.

Como funciona o hash de arquivos grandes aqui

A API WebCrypto nativa do navegador só consegue gerar o hash de um buffer que esteja inteiro na memória de uma vez. Para texto, tudo bem, e esta ferramenta a usa. Para um arquivo de 4 GB, isso significaria ler 4 GB para dentro da aba, o que falha ou trava na maioria dos dispositivos.

Por isso, os arquivos passam por implementações em streaming de SHA-1, SHA-256, SHA-384, SHA-512 e CRC32 (e spark-md5 para o MD5) que consomem o arquivo 4 MB por vez, lendo cada fatia direto do disco com File.slice. O uso de memória fica estável, seja qual for o tamanho do arquivo. As implementações são testadas byte a byte com o módulo crypto do Node, baseado no OpenSSL, em tamanhos-limite e dados aleatórios.

Num notebook recente, conte com algo em torno de 150–250 MB por segundo para MD5, SHA-1 ou SHA-256, e cerca de um terço disso para SHA-384 e SHA-512, cuja aritmética de 64 bits o JavaScript precisa emular com pedaços de 32 bits. Todos os algoritmos selecionados compartilham uma única passada pelo arquivo, então desmarcar os que você não precisa é o jeito mais fácil de acelerar.

Como ler um arquivo de checksums

Distribuições Linux e projetos de código aberto publicam arquivos como SHA256SUMS. Cada linha tem o digest em hex, dois espaços e depois o nome do arquivo, que é o formato que o sha256sum produz. O shasum do macOS usa o mesmo formato; ferramentas no estilo BSD escrevem SHA256 (file.iso) = digest.

Você pode colar qualquer um dos dois estilos de linha no campo de comparação: a ferramenta extrai o digest e ignora o resto, além de maiúsculas, espaços e dois-pontos. Quando um projeto também publica um arquivo de assinatura (SHA256SUMS.gpg ou .sig), é a verificação dessa assinatura com a chave do projeto que prova que a própria lista de checksums não foi substituída.

Ferramentas grátis relacionadas

  • Gerador de bcrypt — Gere o hash bcrypt de uma senha no custo que você escolher, confira uma senha com um hash bcrypt e veja o que significa cada parte do hash.
  • Codificador / decodificador Base64 — Codifique texto ou arquivos em Base64, transforme imagens em data URIs com trechos de CSS e <img>, e decodifique Base64 de volta em um arquivo com pré-visualização. Nada sai do seu navegador.
  • Gerador de senhas — Gere uma senha aleatória forte, uma frase-senha fácil de lembrar ou um PIN. Funciona inteiramente no seu navegador; nada é enviado nem armazenado.
  • Gerador TOTP — Transforme um segredo Base32 em códigos 2FA ao vivo com contagem regressiva, monte um QR Code otpauth:// para apps autenticadores ou leia uma URI existente.