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
hello
5d41402abc4b2a76b9719d911017c592
MD5 (128 bits). Rápido, mas quebrado para segurança; usa apenas para somas de verificação.
hello
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
SHA-1 (160 bits). Obsoleto para assinaturas.
hello
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
SHA-256 (256 bits). O valor predefinido de uso geral atual.
Perguntas frequentes
Os meus dados são enviados para um servidor?
Qual é a diferença entre SHA-256, SHA-384 e SHA-512?
Quando usaria um hash num projeto real?
Porque é que o MD5 não está disponível?
Posso aplicar hash a um ficheiro, e há um limite de tamanho?
A ferramenta funciona offline?
Posso usar a saída do hash diretamente como palavra-passe ou chave de API?
Ainda é seguro usar SHA-1?
Em que formato está a saída do hash, e posso convertê-la para Base64?
O que é uma 'colisão de hash' e porque é que importa?
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.