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

EntradaResultado
helloSHA-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.