BrowserTools
Publicidade
Início / Codificadores / Gerador de Hash (SHA-1, SHA-256, SHA-384, SHA-512)

Gerador de Hash (SHA-1, SHA-256, SHA-384, SHA-512)

Calcula hashes criptográficos de texto ou ficheiros localmente: SHA-1, SHA-256, SHA-384 e SHA-512.

A carregar Gerador de Hash (SHA-1, SHA-256, SHA-384, SHA-512)… Se nada acontecer, ativa o JavaScript.

Uma função de hash criptográfica é um algoritmo matemático que recebe uma entrada de comprimento arbitrário e produz uma saída de tamanho fixo, o hash ou resumo, que parece aleatória mas é completamente determinista. A mesma entrada produz sempre o mesmo hash, mas mudar um único bit da entrada produz um resumo completamente diferente (o efeito avalanche). Esta propriedade de sentido único significa que é computacionalmente inviável reverter um hash de volta à entrada original, o que torna as funções de hash um pilar da segurança informática. A família SHA (Secure Hash Algorithm) foi concebida pela Agência de Segurança Nacional e normalizada pelo NIST: SHA-1 em 1995, SHA-256/384/512 (em conjunto SHA-2) em 2001.

Exemplos

Entrada hello
Saída 5d41402abc4b2a76b9719d911017c592

MD5 (128 bits). Rápido, mas quebrado para segurança; usa apenas para somas de verificação.

Entrada hello
Saída aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

SHA-1 (160 bits). Obsoleto para assinaturas.

Entrada hello
Saída 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

SHA-256 (256 bits). O valor predefinido de uso geral atual.

Perguntas frequentes

Os meus dados são enviados para um servidor?
Não. Todo o cálculo de hash é feito localmente no teu navegador usando a API Web Crypto, que está integrada em todos os navegadores modernos e corre inteiramente no teu dispositivo. O teu texto e os teus ficheiros nunca são transmitidos pela rede, o que torna seguro usar esta ferramenta com entradas sensíveis ou confidenciais.
Qual é a diferença entre SHA-256, SHA-384 e SHA-512?
As três fazem parte da família SHA-2 e são consideradas criptograficamente seguras. Os números referem-se ao tamanho da saída em bits: o SHA-256 produz um resumo hexadecimal de 64 caracteres, o SHA-384 produz 96 caracteres e o SHA-512 produz 128 caracteres. O SHA-256 é o mais usado; o SHA-384 e o SHA-512 oferecem margens de segurança maiores e podem ser exigidos por normas de conformidade específicas ou protocolos como as suites de cifra do TLS 1.3.
Quando usaria um hash num projeto real?
Os usos comuns incluem gerar somas de verificação para verificar a integridade de ficheiros (distribuir um hash SHA-256 junto a uma transferência), construir sistemas de armazenamento endereçável por conteúdo (como o Git), criar chaves de cache a partir de parâmetros de pedido, calcular códigos de autenticação de mensagens HMAC e implementar a deduplicação de dados comparando hashes em vez do conteúdo completo dos ficheiros.
Porque é que o MD5 não está disponível?
O MD5 está criptograficamente quebrado: os ataques de colisão práticos são publicamente conhecidos desde 2004, o que significa que podem ser criadas deliberadamente duas entradas diferentes que produzam o mesmo hash MD5. Por esta razão, a API Web Crypto não expõe o MD5. Se precisas de verificar uma soma de verificação MD5 de um sistema legado, usa SHA-256 para quaisquer novas somas que geres: é igualmente rápido e drasticamente mais seguro.
Posso aplicar hash a um ficheiro, e há um limite de tamanho?
Sim. Usa a entrada de ficheiro para selecionar qualquer ficheiro; ele é lido localmente através da API FileReader, convertido num ArrayBuffer e passado diretamente à API Web Crypto para o cálculo do hash. A ferramenta não impõe um limite de tamanho fixo, mas ficheiros muito grandes (vários gigabytes) consomem muita memória e demoram um tempo percetível. Para o cálculo de hash de ficheiros em produção, utilitários de linha de comandos como o sha256sum no Linux/macOS ou o Get-FileHash no PowerShell são mais adequados.
A ferramenta funciona offline?
Sim. Depois de a página carregar, a ferramenta funciona inteiramente offline. A API Web Crypto é uma funcionalidade nativa do navegador que não requer qualquer biblioteca ou serviço externo. Podes guardar a página nos favoritos e usá-la sem ligação à internet desde que a página esteja em cache.
Posso usar a saída do hash diretamente como palavra-passe ou chave de API?
Um hash SHA-256 de um valor aleatório forte é uma chave de API ou um token de sessão razoável, mas nunca deves aplicar hash a uma palavra-passe fornecida pelo utilizador com uma função SHA simples. O SHA-256 é extremamente rápido (milhares de milhões de hashes por segundo em hardware moderno), o que torna trivial quebrar por força bruta palavras-passe adivinháveis. Para palavras-passe, usa sempre uma função de derivação de chaves lenta (bcrypt, scrypt ou Argon2) concebida especificamente para resistir a ataques de força bruta.
Ainda é seguro usar SHA-1?
O SHA-1 está quebrado quanto à resistência a colisões: o ataque SHAttered (2017) demonstrou a primeira colisão prática de SHA-1, e em 2020 foi publicado um ataque de colisão de prefixo escolhido. O SHA-1 não deve ser usado em nenhuma nova aplicação de segurança. Continua aceitável para usos não relacionados com segurança, como somas de verificação onde não é necessária resistência a colisões, mas o SHA-256 é uma melhor escolha mesmo aí, já que tem o mesmo desempenho em hardware moderno.
Em que formato está a saída do hash, e posso convertê-la para Base64?
A ferramenta produz os hashes em hexadecimal minúsculo (0-9, a-f), que é o formato mais comum e legível. Alguns sistemas, em particular o JWT e a autenticação HTTP Digest, esperam o hash codificado em Base64. Podes copiar a saída hexadecimal para o codificador Base64 deste site depois de converter o hexadecimal em binário, ou usar uma biblioteca da tua linguagem de programação para obter os bytes em bruto e codificá-los em Base64 diretamente.
O que é uma 'colisão de hash' e porque é que importa?
Uma colisão ocorre quando duas entradas diferentes produzem a mesma saída de hash. Como as funções de hash mapeiam um espaço de entrada infinito para uma saída de tamanho fixo, as colisões têm de existir matematicamente, mas numa boa função de hash devem ser impossíveis de encontrar na prática. Quando as colisões podem ser concebidas deliberadamente (como com o MD5 e o SHA-1), um atacante poderia substituir um ficheiro legítimo por um malicioso mantendo o mesmo hash, comprometendo as verificações de integridade e as assinaturas digitais.

Sobre Gerador de Hash (SHA-1, SHA-256, SHA-384, SHA-512)

As funções de hash são usadas por todo o lado no software moderno. Os sistemas de armazenamento de palavras-passe aplicam hash às palavras-passe dos utilizadores com um sal adicional, de modo que, mesmo que a base de dados seja roubada, as palavras-passe em claro permanecem desconhecidas. As ferramentas de integridade de ficheiros distribuem somas de verificação SHA-256 junto às transferências para que os utilizadores verifiquem que um ficheiro não foi adulterado em trânsito. O Git usa SHA-1 (e está a migrar para SHA-256) para endereçar cada commit, árvore e blob de um repositório. Os certificados digitais, os apertos de mão TLS, os tokens de autenticação HMAC e as cadeias de assinatura de código dependem todos de hashes SHA-2. As redes de distribuição de conteúdos usam hashes para as chaves de cache, e as cadeias de blocos usam-nos para a prova de trabalho.

Esta ferramenta calcula hashes SHA-1, SHA-256, SHA-384 e SHA-512 diretamente no teu navegador usando a API Web Crypto, uma interface nativa do navegador apoiada na biblioteca criptográfica do sistema operativo. Como todo o cálculo acontece no teu dispositivo, o teu texto ou ficheiro de entrada nunca é enviado para nenhum servidor, o que torna seguro usar a ferramenta com documentos confidenciais, credenciais de produção ou chaves privadas. Os resultados são mostrados em hexadecimal minúsculo, o formato mais comum, e podem ser copiados com um único clique.

Escolher o algoritmo certo importa. O SHA-1 é considerado criptograficamente quebrado quanto à resistência a colisões (podem ser concebidas duas entradas diferentes que produzam o mesmo hash SHA-1) e só deveria ser usado para interoperabilidade legada, não para novas aplicações de segurança. O SHA-256 é o padrão de trabalho atual, amplamente suportado e apropriado para a grande maioria dos casos. O SHA-384 e o SHA-512 oferecem tamanhos de saída maiores (e margens de segurança ligeiramente mais fortes) ao custo de resumos algo maiores. Se precisas de aplicar hash a palavras-passe em concreto, usa antes uma função de hash de palavras-passe específica como bcrypt, scrypt ou Argon2: os hashes criptográficos como o SHA-256 são intencionalmente rápidos, o que os torna más escolhas para armazenar palavras-passe.

A história do SHA: de origens classificadas a padrão global

A família Secure Hash Algorithm foi desenvolvida pela Agência de Segurança Nacional (NSA) dos Estados Unidos e normalizada pelo Instituto Nacional de Normas e Tecnologia (NIST). O SHA original (chamado retroativamente SHA-0) foi publicado em 1993, mas a NSA retirou-o menos de um ano depois, citando oficialmente uma falha, embora a natureza dessa falha fosse classificada. O SHA-1, o seu sucessor, foi publicado em 1995 e tornou-se um dos algoritmos criptográficos mais implementados da história, incorporado em tudo, desde certificados SSL a repositórios Git.

A família SHA-2 (SHA-256, SHA-384, SHA-512) foi publicada em 2001, mas a adoção foi lenta porque o SHA-1 ainda era considerado seguro na altura. Foi preciso a quebra teórica do SHA-1 pela equipa de Wang Xiaoyun em 2005, e o ataque de colisão prático SHAttered em 2017, para empurrar finalmente a indústria para o SHA-2. O NIST também normalizou o SHA-3 (2015), que se baseia numa estrutura interna completamente diferente (a construção de esponja Keccak) e serve de reserva caso seja encontrada uma fraqueza fundamental no SHA-2.

Um detalhe fascinante: a saída do SHA-256 é exatamente de 256 bits, um número tão astronomicamente grande (cerca de 10^77) que a quantidade de hashes SHA-256 possíveis supera o número estimado de átomos do universo observável. É por isso que, mesmo com todo o poder de cálculo do mundo a trabalhar em conjunto, encontrar uma entrada específica de SHA-256 apenas a partir do seu hash é considerado praticamente impossível no futuro previsível.

Publicidade
Publicidade
Publicidade