Hash
Gere hashes SHA-1, SHA-256, SHA-384, SHA-512
MD5 não é fornecido — está criptograficamente quebrado e não está disponível na API SubtleCrypto do navegador. Use SHA-256 ou mais forte.
O que é um hash criptográfico?
Uma função de hash criptográfico transforma qualquer entrada — um único caractere, um documento de 5 páginas — em uma string de comprimento fixo de dígitos hexadecimais. SHA-256 sempre produz 64 caracteres hexadecimais; SHA-512, 128. Duas propriedades cruciais: a mesma entrada sempre produz o mesmo hash, e é computacionalmente inviável encontrar duas entradas diferentes com o mesmo hash (resistência a colisões).
Hashes são usados para verificações de integridade de ficheiros (baixando um ficheiro? compare seu SHA-256 com o valor publicado), armazenamento de palavras-passe (servidores armazenam o hash, não a palavra-passe), assinaturas HMAC e armazenamento endereçado por conteúdo (o Git usa SHA-1 para identificar commits).
Casos de uso
- Verificar a integridade do download — compare um SHA-256 de um ficheiro baixado com o checksum listado pelo editor.
- Detectar conteúdo duplicado — hash strings ou conteúdos de ficheiros para identificar duplicados sem armazenar os originais.
- Construir chaves de cache — transformar entradas longas (URLs, strings de consulta, corpos de requisição) em chaves de comprimento fixo para Redis ou Memcached.
- Auditar artefatos do Git — calcular SHA-1 para inspecionar endereços de objetos blob/tree fora do encanamento do Git.
Exemplos
| Entrada | Resultado |
|---|---|
| hello | SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 |
| (empty string) | SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
Perguntas frequentes
Por que não MD5?
MD5 está criptograficamente quebrado — colisões podem ser geradas em segundos em um laptop. A API SubtleCrypto do navegador não a expõe de propósito. Use SHA-256 ou mais forte.
Posso hash um ficheiro?
Esta ferramenta faz hash de entrada de texto. Para hash de um ficheiro, insira no console do navegador: `crypto.subtle.digest('SHA-256', await file.arrayBuffer())`.
O hash é determinístico entre execuções?
Sim — SHA-256 de 'hello' é sempre o mesmo valor. Funções de hash são puras (sem sal, sem aleatoriedade) por design.
Devo usar SHA-1?
Evite para novas aplicações — foi quebrado para ataques de colisão. SHA-1 ainda é comum para checksums de ficheiros e Git, mas use SHA-256 para qualquer coisa relevante à segurança.
Minha entrada é enviada para algum lugar?
Não. O hashing usa a API de criptografia nativa do navegador; nada sai do seu dispositivo.
