O que esta ferramenta faz
Calcula hashes criptográficos (MD5, SHA-1, SHA-256, SHA-384, SHA-512) de texto ou de conteúdo de ficheiros, inteiramente no teu navegador. O resultado é um digest hexadecimal de comprimento fixo que podes colar num ficheiro de checksums, comparar com um hash publicado ou usar como chave de pesquisa.
Quando usar
- Verificar que um ficheiro descarregado corresponde ao SHA-256 que o autor publicou.
- Gerar uma chave de cache estável para um pedaço de conteúdo.
- Calcular um hash de integridade para um atributo Subresource Integrity (SRI).
- Fazer rapidamente o fingerprint de um ficheiro antes de o enviar para algum lado.
Como funciona
SHA-1, SHA-256, SHA-384 e SHA-512 usam a API WebCrypto do navegador (crypto.subtle.digest), que é implementada nativamente em C/Rust e corre quase à velocidade de leitura de disco para ficheiros. O MD5 não está no WebCrypto (foi descontinuado para usos de segurança há mais de uma década), por isso enviamos uma pequena implementação do RFC 1321 que corre no mesmo separador. O hash de ficheiros lê chunks do ficheiro através da API File/Blob padrão — sem upload, sem ficheiro temporário, sem servidor.
Notas
MD5 e SHA-1 ainda estão listados — devo usá-los? Apenas para fins não relacionados com segurança. Usa-os para caches endereçadas por conteúdo, ETags, chaves de deduplicação ou para comparar com um checksum legado. Não os uses para armazenamento de palavras-passe, assinaturas, ou qualquer coisa em que a resistência a colisões importe.
Que SHA devo usar para código novo? SHA-256 é o defeito correto. SHA-512 é mais rápido em CPUs de 64 bits e dá-te um digest mais longo se precisares. SHA-384 existe sobretudo para corresponder a requisitos específicos de compliance.
Porque é que o meu hash difere do que o shasum mostra? Provavelmente uma newline final. echo "hello" adiciona \n, enquanto colar "hello" nesta ferramenta não. Usa echo -n para a omitir, ou cola os bytes literalmente.