tooly

Gerador de hash

Calcule os resumos MD5, SHA-1, SHA-256, SHA-384 e SHA-512 de qualquer texto ou arquivo. Os hashes atualizam enquanto você digita. Arquivos são processados localmente, então você verifica downloads grandes com privacidade.

Tudo roda no seu navegador — nada é enviado

Como usar

  1. 1

    Digite ou cole texto, ou escolha um arquivo.

  2. 2

    Os cinco hashes são calculados na hora.

  3. 3

    Copie o que precisar.

Para que serve um hash

Uma função de hash criptográfica transforma uma entrada de qualquer tamanho numa impressão digital de comprimento fixo. A mesma entrada sempre gera o mesmo resumo, e mudar um único bit da entrada gera um resumo completamente diferente. Não dá para reconstruir a entrada a partir do resumo e, nos algoritmos modernos, na prática não dá para encontrar duas entradas com o mesmo resumo.

Isso torna os hashes úteis sempre que você precisa saber se duas coisas são idênticas sem compará-las byte a byte:

  • Verificar downloads. ISOs de Linux, imagens de firmware e muitos instaladores publicam um SHA-256 ao lado do link de download. Se o seu arquivo der o mesmo valor, ele chegou intacto.
  • Encontrar duplicatas. Duas fotos ou documentos com o mesmo SHA-256 são o mesmo arquivo, sejam quais forem os nomes.
  • Chaves de cache e ETags. Servidores web e ferramentas de build calculam o hash do conteúdo para saber se ele mudou.
  • Integridade em APIs. Webhooks, arquivos de lock de pacotes e atributos de Subresource Integrity dependem de resumos.
  • Depuração. Comparar o hash que o seu código calcula com um valor de referência mostra rapidinho se o bug está no hash ou na entrada.

Os cinco algoritmos lado a lado

A ferramenta calcula os cinco de uma vez, então você consegue bater com qualquer formato que um site publique.

  • MD5, 128 bits, 32 caracteres hexadecimais. Criado em 1991. Colisões práticas são possíveis desde 2004, então ele não deve ser usado onde um atacante possa forjar a entrada. Ainda é comum para checagens rápidas de duplicatas e checksums legados.
  • SHA-1, 160 bits, 40 caracteres hexadecimais. Descontinuado depois da primeira colisão pública, em 2017. O Git historicamente identificava objetos por SHA-1, e por isso ele ainda está em todo lugar.
  • SHA-256, 256 bits, 64 caracteres hexadecimais. O padrão atual para checksums, certificados, gerenciadores de pacotes e blockchains.
  • SHA-384, 384 bits, 96 caracteres hexadecimais. Uma variante truncada do SHA-512, muito usada em TLS e em hashes de Subresource Integrity.
  • SHA-512, 512 bits, 128 caracteres hexadecimais. Mesma família do SHA-256, mas com operações internas de 64 bits, o que pode deixá-lo mais rápido que o SHA-256 em processadores de 64 bits.

Se puder escolher, publique e confira o SHA-256. MD5 e SHA-1 só são aceitáveis para detectar corrupção acidental, não adulteração.

Chegando ao mesmo hash para um texto

Quando o seu resumo difere do de outra pessoa para o "mesmo" texto, a entrada quase nunca é realmente a mesma. O que conferir:

  • Quebra de linha no final. echo hello | sha256sum calcula o hash de hello seguido de uma quebra de linha. A caixa de texto aqui calcula o hash exatamente do que você digitou, então os resultados diferem, a menos que você acrescente uma nova linha no final. Na linha de comando, echo -n ou printf evitam o caractere extra.
  • Finais de linha. O Windows usa CR LF; Linux e macOS usam LF. Um texto de várias linhas colado pode mudar os finais dependendo da origem.
  • Codificação. O texto é convertido para UTF-8 antes do hash. Um sistema que calcula o hash de bytes Latin-1 ou UTF-16 vai obter outro resultado para tudo o que for além do ASCII simples, inclusive letras acentuadas.
  • Caracteres invisíveis. Espaços não separáveis e caracteres de largura zero copiados de páginas web ou PDFs parecem idênticos na tela.
  • Maiúsculas e minúsculas no hexadecimal. Os resumos são exibidos em minúsculas. A3F… e a3f… são o mesmo valor; compare sem diferenciar maiúsculas de minúsculas.

Calculando o hash de arquivos e verificando checksums

Hash de um arquivo… lê localmente o arquivo escolhido e calcula os cinco resumos a partir dos bytes exatos dele. O nome e a data do arquivo não afetam o resultado; só o conteúdo afeta. A família SHA usa a implementação Web Crypto embutida no navegador; o MD5 é calculado por uma pequena biblioteca JavaScript, porque os navegadores não o oferecem.

Para verificar um download, abra a página de checksums do distribuidor, encontre a linha do seu arquivo e compare com a linha correspondente aqui. Comparar os seis ou oito primeiros e últimos caracteres é uma checagem rápida de bom senso; para segurança de verdade, compare a string inteira. Se os valores diferirem, baixe o arquivo de novo antes de supor adulteração, já que um download interrompido é o motivo mais provável.

O arquivo inteiro é carregado na memória antes do cálculo, então arquivos muito grandes, principalmente de vários gigabytes num celular, podem ficar lentos ou falhar. Nada é enviado.

O que um hash não é

Um hash simples não é forma de guardar senhas. MD5 e a família SHA foram feitos para ser rápidos, o que permite a atacantes testar bilhões de palpites por segundo contra um resumo vazado. Guardar senhas exige uma função propositalmente lenta e com salt, como bcrypt, scrypt ou Argon2. Se você só precisa de um segredo forte, use o gerador de senhas.

Um hash também não é criptografia. Ele é de mão única: não existe chave para recuperar o original.

Perguntas frequentes

Meu arquivo é enviado?

Não. O hash usa a Web Crypto API no seu navegador. O arquivo nunca sai do seu dispositivo.

Qual hash devo usar?

SHA-256 para checksums e integridade hoje. MD5 e SHA-1 servem para detectar corrupção acidental, mas não são seguros contra adulteração.

Posso verificar um arquivo baixado?

Sim. Escolha o arquivo e compare o SHA-256 com o valor publicado na página de download.

Existe limite de tamanho?

Não há limite fixo, mas o arquivo inteiro é lido na memória antes do cálculo, então arquivos de vários gigabytes podem falhar em dispositivos com pouca memória, principalmente celulares. Nada é enviado.

Ferramentas relacionadas