Gerador de Hash SHA-1 (160 bits — Legado)
Gere hashes SHA-1 no navegador — saída hex de 40 caracteres, sem upload. Ferramenta legada para impressões digitais do Git, verificação de certificados antigos e auditorias de migração. Dados nunca saem do dispositivo.
O que é SHA-1?
SHA-1 (Secure Hash Algorithm 1) é uma função de hash criptográfica de 160 bits publicada pelo NIST em 1995 como FIPS 180-1. Foi projetada pela Agência de Segurança Nacional dos EUA para substituir o SHA-0 (uma versão anterior com falhas, rapidamente retirada em 1993) e foi o algoritmo de hash dominante para assinaturas digitais, certificados TLS e assinatura de código durante os anos 2000.
Histórico de quebras: Em 2005, a equipe de Xiaoyun Wang publicou um ataque teórico reduzindo a resistência a colisões do SHA-1 de 2^80 esperado para 2^63 operações — uma quebra teórica, mas ainda não prática. Em fevereiro de 2017, o Google e o CWI Amsterdam lançaram o ataque SHAttered, produzindo dois documentos PDF distintos com hashes SHA-1 idênticos usando aproximadamente 110 anos-GPU de computação. Esta foi a quebra prática definitiva. O NIST já havia depreciado o SHA-1 para assinaturas em 2011 (NIST SP 800-131A); fornecedores de navegadores e Autoridades Certificadoras seguiram removendo o suporte a certificados SHA-1 em 2016–2017.
Status atual: SHA-1 está obsoleto para todos os usos sensíveis à segurança — assinaturas digitais, impressões digitais de certificados, armazenamento de senhas e assinatura de código. Persiste no formato de ID de objeto do Git (hashes de commit), onde é usado para endereçamento de conteúdo em vez de segurança, e em checksums de software legado onde os administradores ainda não migraram. O projeto Git adicionou suporte ao formato de objeto SHA-256 na versão 2.29 (outubro de 2020). Todos os novos projetos devem usar SHA-256 ou mais forte.
Esta ferramenta calcula SHA-1 inteiramente no seu navegador usando crypto.subtle.digest('SHA-1', ...) da Web Crypto API. A saída hex de 40 caracteres é idêntica ao que sha1sum, openssl dgst -sha1 ou git hash-object produzem. Nenhum byte é enviado a qualquer servidor.
SHA-1 vs a família SHA-2: SHA-1 produz 40 hex (160 bits). SHA-256 produz 64 hex (256 bits) e não tem fraquezas conhecidas. MD5 produz 32 hex (128 bits) e foi quebrado antes (2004). Para qualquer novo trabalho de hashing, SHA-256 é a escolha padrão.
// Hash text using Web Crypto API (SHA-1 — legacy use only)
async function sha1(text) {
const data = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest('SHA-1', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
await sha1('Hello, World!');
// → '0a0a9f2a6772942557ab5355d76af442f8f65e01'
// ⚠️ SHA-1 is broken — use SHA-256 for new work. Exemplos de SHA-1
Consultar impressão digital de commit do Git
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 author A Dev <dev@example.com> 1716854400 +0000 committer A Dev <dev@example.com> 1716854400 +0000 Initial commit
O Git armazena cada commit como um blob cujo SHA-1 é calculado a partir do cabeçalho do commit mais o conteúdo exatamente neste formato. A string hex de 40 caracteres que o `git log` exibe é uma impressão digital SHA-1 direta. Cole o texto do objeto de commit bruto aqui para reproduzir o mesmo hash — útil ao depurar a saída do `git cat-file` ou verificar se um repositório espelho não adulterou o histórico. Nota: o Git 2.29+ suporta o modo SHA-256 (git init --object-format=sha256), e o armazenamento de objetos do GitHub eventualmente migrará. Para novos repositórios, prefira o modo SHA-256.
Verificar impressão digital de certificado TLS legado
-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAKlL... -----END CERTIFICATE-----
Antes de 2017, os navegadores exibiam impressões digitais de certificados como strings hex SHA-1 de 40 caracteres. As ACs pararam de emitir certificados assinados com SHA-1 em janeiro de 2016, e todos os principais navegadores removeram o suporte no início de 2017. Se você está auditando um certificado interno antigo ou validando um dispositivo IoT legado, cole o corpo PEM aqui para reproduzir a impressão digital SHA-1 para comparação. Fluxos de trabalho modernos usam a impressão digital SHA-256 de 64 caracteres.
Verificação de download de software antigo
node-v0.12.7-linux-x64.tar.gz
Alguns arquivos de software mais antigos ainda publicam apenas um checksum SHA-1 junto ao download. Embora isso forneça detecção básica de corrupção (não detecção de adulteração), ainda é melhor do que nenhum checksum. Use a aba Arquivo para soltar o arquivo, calcule o SHA-1 e compare com o valor publicado pelo distribuidor. Se SHA-256 também estiver disponível, prefira-o. Para novos arquivos, insista em checksums SHA-256 ou SHA-512.
Demonstração de colisão SHAttered
(Cole o conteúdo do arquivo shattered-1.pdf do Google/CWI via aba Arquivo)
Em fevereiro de 2017, o Google e o CWI Amsterdam lançaram o ataque SHAttered — a primeira colisão prática de SHA-1. Eles produziram dois arquivos PDF diferentes (shattered-1.pdf e shattered-2.pdf) que geram o mesmo valor SHA-1 idêntico: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. Soltar qualquer PDF na aba Arquivo desta ferramenta produz exatamente esse hash, provando que a colisão é real. Esta demonstração é a evidência mais clara de por que o SHA-1 está quebrado: dois documentos diferentes com a mesma impressão digital significa que a impressão digital não é mais uma identidade confiável. Use SHA-256 para todos os novos fluxos de integridade de documentos.
Como Gerar Hashes SHA-1
- 1
Cole texto ou solte um arquivo
Selecione a aba Texto e cole qualquer string — uma mensagem de commit, corpo de certificado ou entrada de checksum legada — na área de entrada. O hash SHA-1 é atualizado conforme você digita. Para arquivos, mude para a aba Arquivo e arraste qualquer arquivo para a zona de soltura; o navegador faz o hash localmente sem nenhum upload.
- 2
Copie o hash de 40 caracteres
Clique no botão Copiar ao lado da saída do hash. A string hex minúscula completa de 40 caracteres vai para a sua área de transferência. Use o botão Maiúsculas se o seu sistema legado espera hex maiúsculo — algumas ferramentas antigas e APIs do Windows usam maiúsculas por padrão.
- 3
Compare com uma impressão digital legada
Mude para a aba Comparar e cole dois hashes SHA-1 lado a lado para confirmar se correspondem. Útil para validar um checksum de distribuidor legado, auditar um repositório Git espelhado ou verificar uma impressão digital de certificado TLS antigo de um documento anterior à adoção do SHA-256.
Detalhes Técnicos
- Algoritmo: construção Merkle-Damgård, 80 rodadas
- SHA-1 processa a entrada em blocos de 512 bits (64 bytes), aplicando 80 rodadas de operações bitwise agrupadas em quatro estágios de 20 rodadas cada, com uma função lógica diferente (Ch, Parity, Maj, Parity) e constante aditiva derivada de raízes quadradas de inteiros pequenos. O estado de hash inicial é composto de cinco palavras de 32 bits (A–E), e o hash final é a concatenação dessas palavras após o último bloco. Implementação definida em FIPS 180-1 (1995), substituída por FIPS 180-4 (2015).
- Saída: 160 bits, 40 caracteres hexadecimais
- Sempre exatamente 40 caracteres hexadecimais minúsculos (160 bits = 20 bytes, codificados como 2 hex por byte). O tamanho de saída é fixo independentemente do tamanho da entrada. Comparado aos 64 chars do SHA-256, a saída mais curta fornece menos bits de resistência a colisões — um fator chave pelo qual SHA-1 foi quebrado antes do SHA-256.
- Desempenho: rápido, mas isso faz parte do problema
- SHA-1 é rápido — tipicamente 400–700 MB/s em um navegador usando Web Crypto, competitivo com SHA-256. Para um atacante, essa velocidade é uma vantagem: um cluster de GPU moderno pode calcular bilhões de hashes SHA-1 por segundo, acelerando buscas de força bruta e colisão. A velocidade é por que SHA-1 (como MD5) nunca deve ser usado para armazenamento de senhas — use bcrypt, scrypt ou Argon2.
- Padrões: FIPS 180-1 (1995) — depreciado no contexto FIPS 180-4
- SHA-1 foi padronizado em FIPS 180-1 (1995), substituindo o SHA-0 com falhas. O NIST depreciou SHA-1 para assinaturas digitais em NIST SP 800-131A (2011) e em FIPS 186-5 (2023) o proibiu formalmente para toda geração de assinatura digital. A RFC 6194 (2011) documentou as considerações de segurança conhecidas. A API WebCrypto do W3C ainda inclui SHA-1 por razões de interoperabilidade com sistemas legados, o que permite que esta ferramenta do navegador o calcule.
Boas Práticas
- Nunca use SHA-1 para operações sensíveis à segurança
- SHA-1 está obsoleto para assinaturas digitais, certificados TLS, assinatura de código, armazenamento de senhas e qualquer fluxo de trabalho onde a resistência a colisões importa. O ataque SHAttered de 2017 demonstrou colisões práticas. Para todos os usos de segurança, migre para SHA-256 ou SHA-3. A diferença de custo é insignificante em hardware moderno — SHA-256 é acelerado por hardware em todos os CPUs e pipelines de GPU atuais.
- SHA-1 para consulta de impressão digital legada é aceitável
- Se você precisa verificar um checksum de arquivo anterior a 2017, consultar um ID de commit do Git ou inspecionar uma impressão digital de certificado antigo para fins de auditoria, SHA-1 é apropriado. O hash em si não está sendo usado para tomar uma decisão de confiança — você está apenas reproduzindo uma impressão digital conhecida para referência cruzada. Documente isso explicitamente nos seus logs de auditoria: 'SHA-1 usado apenas para referência legada, não para validação de segurança.'
- Sempre faça hash de bytes UTF-8, não de pontos de código Unicode
- SHA-1, como todos os algoritmos de hash, opera em bytes, não em caracteres. A mesma string codificada em UTF-8 vs UTF-16 produz hashes diferentes. Esta ferramenta sempre codifica a entrada como UTF-8 sem BOM antes de fazer o hash. Se você precisa corresponder a um sistema que usa uma codificação diferente (Windows UTF-16-LE, Latin-1), você deve pré-codificar a entrada externamente antes de comparar hashes.
- Use comparação em tempo constante ao verificar hashes no código
- Se você compara dois hashes SHA-1 no código, use uma verificação de igualdade em tempo constante — Node.js
crypto.timingSafeEqual(), Pythonhmac.compare_digest()— em vez de igualdade de string simples (=== ou ==). Comparação ingênua vaza informações de temporização que podem teoricamente permitir que um atacante reconstrua o hash esperado byte a byte. Esta é uma medida de defesa em profundidade mesmo para verificação SHA-1 legada.
Perguntas Frequentes sobre SHA-1
O SHA-1 ainda é seguro?
Por que o Git ainda usa SHA-1?
--object-format=sha256. GitHub e grandes forjas estão implementando gradualmente o modo SHA-256. Repositórios existentes podem ser convertidos, mas a migração é complexa devido aos bilhões de IDs de commit existentes. Devo migrar de SHA-1 para SHA-256?
O que foi o ataque SHAttered?
Colisões SHA-1 podem ocorrer acidentalmente?
SHA-1 é adequado para usos não relacionados à segurança como checksums?
Qual é o tamanho de um hash SHA-1?
Minha entrada é enviada a algum servidor?
crypto.subtle.digest('SHA-1', data)). Abra DevTools → aba Rede enquanto faz o hash — você verá zero requisições de saída. Os arquivos que você soltar são lidos via API FileReader e processados localmente; os bytes nunca saem da sua máquina. Isso torna a ferramenta segura para fazer hash de documentos confidenciais, certificados legados ou impressões digitais de código-fonte proprietário. Por que minha saída SHA-1 difere do sha1sum na linha de comando?
echo 'hello' | sha1sum inclui uma nova linha (\n) após 'hello', então ele faz hash de 'hello\n' e não de 'hello'. Use echo -n 'hello' | sha1sum ou printf '%s' 'hello' | sha1sum para removê-la. Outras causas comuns: terminações de linha do Windows (\r\n vs \n), BOM UTF-8 no início do arquivo, ou diferenças de codificação (UTF-8 vs Latin-1). Esta ferramenta codifica a entrada como UTF-8 sem BOM antes de fazer o hash. Ferramentas relacionadas
Ver todas as ferramentas →Decodificador JWT
Ferramentas de Segurança
Decodifique tokens JWT online com nosso decodificador JWT grátis. Inspecione cabeçalho, carga útil, assinatura, expiração e reivindicações. 100% navegador — seu token nunca sai do dispositivo. Sem cadastro, sem rastreio.
Gerador de Hash MD5 e Ferramenta de Checksum
Ferramentas de Segurança
Gere hashes MD5, SHA-256, SHA-1 e SHA-512 online gratuitamente. Faça hash de texto ou arquivos no navegador, verifique checksums e copie resultados. Sem cadastro necessário.
Gerador de Senhas Aleatórias — Forte e Seguro
Ferramentas de Segurança
Gere senhas aleatórias fortes instantaneamente — grátis, sem cadastro, 100% no navegador. Personalize comprimento e tipos de caracteres, gere em lote até 50. Medidor de força com análise de entropia.
Gerador de Hash SHA-256 e Ferramenta de Checksum
Ferramentas de Segurança
Gere hashes SHA-256 online gratuitamente. Faça hash de texto ou arquivos no navegador, verifique checksums e copie saída hex de 64 caracteres. Sem cadastro; dados nunca saem da página.
Gerador de Hash SHA-3 (Keccak SHA3-256)
Ferramentas de Segurança
Gere hashes SHA-3 online gratuitamente. Construção sponge NIST FIPS 202 — o padrão pós-SHA-2. Saída SHA3-256 em 64 hex. Somente no navegador via js-sha3 carregado sob demanda; zero uploads.
Gerador de Hash SHA-384 (Hash Suite B para TLS)
Ferramentas de Segurança
Gere hashes SHA-384 online — saída hex de 96 caracteres, imune a extensão de comprimento, compatível com NSA Suite B. Combinado com AES-256-GCM em TLS. Todo o hashing é executado no navegador via Web Crypto API.