Como usar
- Escolha Texto ou Arquivo.
- Digite o texto ou selecione o arquivo; os hashes são recalculados automaticamente.
- Marque Maiúsculas se o sistema de destino exigir hexadecimal em caixa alta.
- Copie o hash do algoritmo desejado.
Casos de uso
- Conferir o checksum SHA-256 publicado junto a uma ISO ou instalador.
- Gerar ETags e chaves de cache a partir do conteúdo.
- Comparar se dois arquivos são idênticos sem abrir o conteúdo.
- Reproduzir hashes usados em integrações legadas que ainda dependem de MD5.
Conceitos técnicos
Função hash criptográfica
Uma função hash transforma qualquer entrada em uma saída de tamanho fixo de forma determinística. Uma boa função é resistente a pré-imagem (não dá para descobrir a entrada a partir do hash) e a colisões (é inviável achar duas entradas com o mesmo hash). Uma mudança de um único bit altera completamente o resultado.
MD5 e SHA-1 estão quebrados
Colisões práticas já foram demonstradas para MD5 (2004) e SHA-1 (SHAttered, 2017). Eles ainda servem para checksums não adversariais, mas não para assinaturas, certificados ou qualquer cenário em que um atacante possa escolher a entrada. Prefira SHA-256 ou superior.
Hash não é armazenamento de senha
SHA-256 é rápido de propósito, o que facilita ataques de força bruta contra senhas. Para senhas, use algoritmos lentos e com salt, como bcrypt, scrypt ou Argon2.
Perguntas frequentes
O arquivo é enviado para calcular o hash?
Não. O arquivo é lido pelo próprio navegador e processado com crypto.subtle.digest; o MD5 usa uma implementação JavaScript local.
Por que meu hash difere do gerado no terminal?
Normalmente por quebra de linha final: echo adiciona \n. Use echo -n ou printf para comparar. Diferenças de encoding (UTF-8 vs Latin-1) também alteram o hash.
Hashes podem ser revertidos?
Não matematicamente, mas entradas curtas ou comuns podem ser encontradas em tabelas pré-computadas. Por isso senhas exigem salt e algoritmos lentos.