Gerador de hash online
Digite um texto e veja todos os hashes ao mesmo tempo, atualizados a cada tecla: MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160 e CRC32. Na aba Arquivo, calcule o checksum de um arquivo de qualquer tamanho e confira com o valor publicado pelo site de onde você baixou. O texto e o arquivo não saem do seu navegador: nada é enviado a servidor.
Campo vazio: abaixo estão os hashes do texto vazio (zero bytes). O texto é codificado em UTF-8.
——————————MD5 e SHA-1 não servem para segurança (têm colisões práticas) e CRC32 só detecta erros acidentais. Para integridade e assinaturas, use SHA-256 ou superior. Hash não é criptografia e, para guardar senhas, o certo é bcrypt, scrypt ou Argon2.
Como usar
- Texto: digite ou cole o conteúdo. Os dez hashes aparecem na hora; use o botão ao lado de cada um para copiar.
- Arquivo: troque para a aba Arquivo e escolha o arquivo. Ele é lido em partes de 1 MB, com barra de progresso, e pode ser cancelado. Para arquivos grandes, desmarque os algoritmos de que não precisa: o cálculo fica bem mais rápido.
- Formato: escolha hexadecimal minúsculo, hexadecimal maiúsculo, Base64 ou Base64url. O hash é o mesmo; só muda a forma de escrever os bytes.
- Comparar com: cole o hash esperado. A ferramenta diz se ele confere e com qual algoritmo. Aceita maiúsculas, espaços,
:entre os bytes e a linha inteira gerada porsha256sum(hash seguido do nome do arquivo).
O que é um hash
Uma função de hash transforma qualquer quantidade de dados em um resumo de tamanho fixo. Três propriedades explicam por que ela é útil:
- Determinística: a mesma entrada gera sempre o mesmo hash.
- Sensível: mudar um único bit muda o resultado por completo.
- De mão única: a partir do hash não se calcula a entrada original.
Veja o efeito de trocar só a primeira letra de maiúscula para minúscula (SHA-256):
| Texto | SHA-256 |
|---|---|
Olá | 5251c3c68010bca32f4dbedb142270f720fa84a0599816524c85d50c3f589365 |
olá | 9b186e077c7c6d044f5789d76e6d8070a5b0aaa902ebc608bc34170722dba903 |
O texto é convertido em bytes UTF-8 antes do cálculo, a codificação usada hoje pela grande maioria dos sistemas e páginas web. Por isso á conta como 2 bytes, e um espaço ou uma quebra de linha a mais no final muda o hash.
Os algoritmos e quando usar cada um
| Algoritmo | Tamanho | Situação |
|---|---|---|
| MD5 | 128 bits (32 hex) | Quebrado: colisões práticas desde 2004. Só para conferir erros acidentais |
| SHA-1 | 160 bits (40 hex) | Quebrado: colisão demonstrada em 2017 (ataque SHAttered) |
| SHA-224 / SHA-256 | 224 / 256 bits | Família SHA-2, segura. SHA-256 é o padrão atual |
| SHA-384 / SHA-512 | 384 / 512 bits | Família SHA-2, segura, com palavras de 64 bits |
| SHA3-256 / SHA3-512 | 256 / 512 bits | Família SHA-3 (Keccak), padronizada pelo NIST em 2015 no FIPS 202 |
| RIPEMD-160 | 160 bits (40 hex) | De 1996; ainda usado nos endereços de Bitcoin, junto com o SHA-256 |
| CRC32 | 32 bits (8 hex) | Soma de verificação de ZIP, PNG e gzip. Não é hash criptográfico |
Para referência, estes são os valores do texto abc, usados como vetores de teste nas especificações:
MD5 900150983cd24fb0d6963f7d28e17f72
SHA-1 a9993e364706816aba3e25717850c26c9cd0d89d
SHA-256 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
CRC32 352441c2Como conferir o checksum de um arquivo
Sites de download de sistemas operacionais, instaladores e firmwares costumam publicar o SHA-256 do arquivo. Depois de baixar, abra a aba Arquivo, selecione o arquivo e cole o valor publicado em Comparar com. Se conferir, o arquivo chegou inteiro, byte a byte igual ao original. Se não conferir, o download está corrompido ou o arquivo foi alterado: baixe de novo.
Um detalhe importante: o checksum só protege contra adulteração se o valor vier de uma fonte confiável. Quem consegue trocar o arquivo num site invadido também consegue trocar o hash publicado na mesma página.
No terminal, os equivalentes são sha256sum arquivo (Linux), shasum -a 256 arquivo (macOS) e certutil -hashfile arquivo SHA256 (Windows).
Hash não é criptografia, nem serve sozinho para senhas
- Hash não é criptografia. Criptografia é reversível com a chave; hash não tem chave nem volta. Também não é codificação: Base64 se desfaz, hash não.
- MD5 e SHA-1 não servem para segurança. Já é possível fabricar dois arquivos diferentes com o mesmo hash. Para assinaturas, certificados e integridade contra ataques, use SHA-256 ou superior.
- Para guardar senhas, nem SHA-256 serve. Funções rápidas deixam um atacante testar bilhões de senhas por segundo. O correto é usar funções lentas e com salt feitas para isso: bcrypt, scrypt ou Argon2.
- Para autenticar mensagens com uma chave secreta, use o gerador de HMAC, não um hash simples.
Limitações
- SHA-1, SHA-256, SHA-384 e SHA-512 de texto usam a Web Crypto do navegador. Os demais algoritmos, e todos os hashes de arquivo, usam implementação própria em JavaScript, conferida com os vetores oficiais de cada especificação. Ela é mais lenta que programas nativos: arquivos de vários gigabytes podem levar minutos se todos os algoritmos estiverem marcados.
- Não há SHA-512/256, BLAKE2, BLAKE3 nem funções de senha.
- O CRC32 é o do padrão IEEE 802.3 (o mesmo do ZIP); o CRC-32C usa outro polinômio e dá outro valor.
Perguntas frequentes
Dá para descobrir o texto original a partir do hash?
Não por cálculo. O que existe é tentativa: gerar o hash de milhões de candidatos e comparar. Textos curtos ou comuns, como 123456, são encontrados na hora em tabelas prontas. É por isso que senhas pedem funções lentas e com salt, como as do gerador de bcrypt.
Qual algoritmo devo usar?
Na dúvida, SHA-256. É seguro, rápido e aceito em toda parte. Use MD5, SHA-1 ou CRC32 apenas quando um sistema antigo exigir ou para detectar erros acidentais de cópia.
Por que meu hash saiu diferente do de outro programa?
Quase sempre é a entrada que difere: uma quebra de linha no final (o echo do terminal acrescenta uma; use echo -n ou printf), espaços, codificação diferente de UTF-8 ou quebras de linha do Windows (\r\n). Comparar maiúsculas com minúsculas no hexadecimal não é problema: é o mesmo valor.
Qual a diferença entre Base64 e Base64url?
São duas formas de escrever os mesmos bytes do hash. O Base64url (RFC 4648) troca + e / por - e _ e aqui sai sem o = final, para caber em URLs e nomes de arquivo. O Base64url aparece em JWT; já o atributo integrity de scripts (SRI) usa o Base64 comum.
O hash da string vazia existe?
Sim. Zero bytes também têm hash: o MD5 é d41d8cd98f00b204e9800998ecf8427e e o SHA-256 começa com e3b0c442. Se você encontrar esses valores num sistema, alguém calculou o hash de um conteúdo vazio.
Meu arquivo é enviado para algum lugar?
Não. A leitura e o cálculo acontecem no seu navegador, e a página funciona até sem conexão depois de carregada.