Como usar
- Digite ou cole o texto no painel Entrada, ou abra um arquivo (ou solte-o sobre o painel). Do arquivo entram os bytes exatamente como estão no disco, como faz o sha256sum.
- Os sete hashes aparecem juntos enquanto você digita: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256 e SHA3-512, cada um com o tamanho em bits.
- Escolha o Formato: hex minúsculo (como o sha256sum), HEX maiúsculo (como o Get-FileHash do PowerShell) ou Base64 (como no atributo integrity do SRI).
- Cole em Hash esperado o valor publicado pelo site de download: a linha que bate ganha a marca “confere”; se nenhuma bater, a mensagem diz quantos bits o hash esperado tem e com quais algoritmos ele foi comparado.
- Copie um hash pela linha dele, ou copie e baixe os sete de uma vez no rodapé. Fique de olho nos avisos do status: quebra de linha no fim, espaço no começo ou no fim e acentos decompostos (NFD) mudam o hash.
Exemplos
Os sete hashes de um texto com acento
Olá, mundo!MD5: b2985faa851a26e1c94d987b832a5fa1
SHA-1: 955a96193d4f64d7ee3082f5849f38cb95e7e1b3
SHA-256: 9583b013baa520d3a893c4270d0c67732d7ef1768eb0a13533b4e7b134d4b131
SHA-384: 14cc895a51ce796d5d7f6623212d3ff9324a138592e97814ce0bc7c84ac1b6f51ec04d833df80fe6a0a9d060ffc63fee
SHA-512: 0b842ec20f00ffa390652e4546db437e6bb02fa7f9587ca161028cb799ca3d1a170040871234e1615cdd79778f2d46de42ac002c154c0d5f29852b0275883796
SHA3-256: 877f45b51f872d6faf248b4d9f6872a8dc6ce3dd12e3863a0d72ed85f18aa597
SHA3-512: a30f5466d26f804349076f453eafe5a74249626572a496caf60da4e9d782eae75eb9107ca6f5d9cfaf6c4805446ebd62aaa5d30ec29fb962310c391df076aba1A quebra de linha do echo muda o hash
abcsem quebra (printf 'abc'): ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
com quebra (echo 'abc'): edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cbIntegrity (SRI) de um script
console.log("oi");sha384-K/Pxx4VNekkWSoHRhf3vYqsjiCeo0konb4oGguD2SBHUya4TomgwFD/4jpLRZ8KcO hash é calculado sobre bytes, não sobre letras
Uma função de hash recebe uma sequência de bytes e devolve um resumo de tamanho fixo; mudar um único bit da entrada muda o resultado inteiro. Texto precisa virar bytes antes, e aqui ele vira UTF-8: “Olá” tem 3 letras e 4 bytes, porque o “á” ocupa 2.
Por isso dois textos que parecem iguais na tela podem ter hashes diferentes. O echo do terminal acrescenta uma quebra de linha no fim; arquivos salvos no Windows terminam as linhas com CRLF (\r\n), e o campo de texto do navegador guarda só LF (\n); e o mesmo “é” pode ser um caractere só (NFC, 2 bytes) ou um “e” seguido do acento combinante (NFD, 3 bytes), forma comum em nomes de arquivo do macOS. O status avisa quando a entrada tem quebra de linha final, espaço nas pontas ou acentos decompostos.
Um arquivo aberto aqui não passa pelo campo de texto: os bytes dele entram exatamente como estão no disco, com CRLF, BOM ou qualquer codificação. É assim que o resultado bate com o checksum publicado pelo site de download.
MD5, SHA-1, SHA-2 e SHA-3: o que muda
O tamanho do resumo é a diferença mais visível: MD5 tem 128 bits (32 dígitos hex), SHA-1 tem 160 (40), SHA-256 e SHA3-256 têm 256 (64), SHA-384 tem 384 (96), e SHA-512 e SHA3-512 têm 512 (128). Pelo número de dígitos já dá para saber de qual família um hash pode ser.
MD5 tem colisões publicadas desde 2004, e o SHA-1, desde o ataque SHAttered de 2017: é possível fabricar dois arquivos diferentes com o mesmo hash. Os dois ainda servem para conferir se um download chegou inteiro, mas não para assinatura digital, certificado ou senha. Por isso aparecem marcados como “só checksum”.
SHA-256, SHA-384 e SHA-512 formam a família SHA-2 (FIPS 180-4). O SHA-384 é o SHA-512 com outros valores iniciais e cortado em 384 bits, o que o deixa fora do alcance do ataque de extensão de comprimento que afeta SHA-256 e SHA-512 usados direto como MAC.
O SHA-3 (FIPS 202) usa outra construção, a esponja Keccak, e não depende do SHA-2. O padrão mudou o preenchimento do Keccak original (o byte de sufixo passou de 0x01 para 0x06), por isso o SHA3-256 dá resultado diferente do Keccak-256 usado no Ethereum, mesmo com a mesma entrada.
Hex ou Base64: onde cada formato aparece
Hex escreve cada byte com dois dígitos de 0 a f e é o formato da maioria das ferramentas: sha256sum, shasum, md5 e certutil mostram em minúsculas, e o Get-FileHash do PowerShell mostra em maiúsculas. Para conferir, maiúsculas e minúsculas valem o mesmo.
Base64 escreve os mesmos bytes com 4 caracteres para cada 3 bytes: o SHA-256 cabe em 44 caracteres (com um “=” no fim) e o SHA-384 em 64. É o formato do atributo integrity do Subresource Integrity (SRI), como integrity="sha384-…" numa tag script ou link vinda de CDN, que o navegador confere antes de executar o arquivo.
Prefixos também identificam o algoritmo: o Docker e os registros OCI escrevem o digest de uma imagem como sha256: seguido do hex. No campo Hash esperado você pode colar o valor com prefixo (sha256:… ou sha384-…), com o nome do arquivo depois, como o sha256sum imprime, ou com espaços entre os pares de dígitos.
Hash não é criptografia, e esta página não envia nada
Hash é de mão única: não existe chave nem operação para voltar do resumo à entrada. Também não serve, sozinho, para guardar senha: SHA-256 é rápido de propósito, e uma placa de vídeo testa bilhões de senhas por segundo. Senha se guarda com bcrypt, scrypt, Argon2 ou PBKDF2, que são lentos e usam sal.
SHA-1, SHA-256, SHA-384 e SHA-512 vêm do Web Crypto do próprio navegador, que só funciona em https ou localhost. MD5 e SHA-3 não existem no Web Crypto e são calculados por código desta página, conferido com o OpenSSL e com os vetores oficiais da RFC 1321 e do FIPS 202. Arquivos grandes são processados em pedaços, com progresso.
Tudo roda no seu navegador: o texto e o arquivo não são enviados para servidor, não geram link de compartilhamento e não ficam salvos. Só o formato escolhido e a posição da divisória ficam no armazenamento local deste navegador.
Perguntas frequentes
- Por que o hash daqui é diferente do echo "texto" | md5sum?
- O echo acrescenta uma quebra de linha (\n) no fim, e ela entra no hash: echo 'abc' | md5sum dá 0bee89b07a248e27c83fc3d5951213c1, enquanto o MD5 de “abc” é 900150983cd24fb0d6963f7d28e17f72. Use printf 'abc' ou echo -n 'abc'. Se ainda não bater, confira a codificação: em Python, hashlib.sha256("Olá, mundo!".encode()).hexdigest() usa UTF-8 e dá o mesmo 9583b013baa520d3a893c4270d0c67732d7ef1768eb0a13533b4e7b134d4b131 desta página; em Latin-1 o “á” vira outro byte e o hash muda.
- Dá para reverter ou descriptografar MD5 ou SHA-256?
- Não. O hash descarta informação: infinitas entradas cabem no mesmo resumo de tamanho fixo, e não há chave para desfazer. Os sites que dizem “reverter MD5” procuram o hash numa tabela de textos já calculados; funcionam com senhas curtas e comuns e falham com qualquer coisa nova. O hash do texto vazio, por exemplo, é sempre e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 em SHA-256 e qualquer tabela o conhece.
- MD5 e SHA-1 ainda são seguros? Qual usar?
- Para conferir se um arquivo baixado chegou sem erro, ainda funcionam, desde que o hash venha de uma fonte confiável. Para qualquer uso contra alguém mal-intencionado (assinatura, certificado, identificar conteúdo), não: os dois têm colisões conhecidas. Para algo novo, use SHA-256; SHA-512 ou SHA3-256 quando o protocolo pedir.
- Posso guardar senha com SHA-256?
- Não. SHA-256 sem sal permite comparar o banco inteiro com tabelas prontas, e com sal ainda é rápido demais: quem rouba o banco testa bilhões de senhas por segundo. Use uma função feita para senha, lenta e com sal embutido: Argon2id, bcrypt, scrypt ou PBKDF2 com muitas iterações. A biblioteca de senha do seu framework já faz isso.
- Como conferir o checksum de um arquivo baixado?
- Abra o arquivo aqui (o hash é dos bytes dele) e cole em Hash esperado o valor publicado pelo site. No terminal: sha256sum arquivo.iso no Linux, shasum -a 256 arquivo.iso no macOS, certutil -hashfile arquivo.iso SHA256 no Prompt de Comando do Windows e Get-FileHash arquivo.iso no PowerShell (SHA-256 por padrão, em maiúsculas). Todos devem dar o mesmo valor que a linha SHA-256 desta página.
- SHA3-256 é o mesmo que o Keccak-256 do Ethereum?
- Não. O Ethereum adotou o Keccak antes de o NIST publicar o padrão, e o SHA-3 final mudou o preenchimento (o byte de sufixo 0x06 no lugar de 0x01). A função interna é a mesma, mas o resultado é outro para qualquer entrada: o SHA3-256 do texto vazio é a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a, e o Keccak-256 dá outro valor. Esta página calcula o SHA-3 padronizado; para endereços e seletores do Ethereum use uma biblioteca de Keccak-256.