#️⃣
Segurança
May 21, 20267 min readBy BrowseryTools Team

MD5, SHA-256, SHA-512: gerador de hash gratuito e quando usar cada um

Entenda a diferença entre MD5, SHA-1, SHA-256 e SHA-512. Gere hashes de arquivos e textos instantaneamente no seu navegador. Aprenda quando cada algoritmo é apropriado.

hashMD5SHA-256SHA-512checksumcriptografia

Toda vez que você baixa uma versão de software, verifica a autenticidade de um arquivo, assina um token JWT ou armazena a senha de um usuário, uma função de hash criptográfico está trabalhando nos bastidores. As funções de hash são uma das primitivas fundamentais da segurança computacional moderna — e, ainda assim, as diferenças entre MD5, SHA-1, SHA-256 e SHA-512 são amplamente mal compreendidas, levando a erros de segurança reais em sistemas de produção.

Este guia explica o que são as funções de hash, como cada algoritmo principal funciona, quando cada um é apropriado (e quando é perigosamente inapropriado) e como usar o Gerador de Hash do BrowseryTools para calcular hashes instantaneamente no seu navegador com total privacidade.

O que é uma função de hash criptográfico?

Uma função de hash criptográfico recebe uma entrada de comprimento arbitrário e produz uma saída de comprimento fixo chamada de digest ou hash. Quatro propriedades definem uma boa função de hash criptográfico:

  • Determinística: A mesma entrada sempre produz exatamente a mesma saída. As funções de hash não têm estado interno — dados os mesmos bytes, você sempre obtém o mesmo digest.
  • De mão única (resistência à pré-imagem): Dada uma saída de hash, deve ser computacionalmente inviável recuperar a entrada original. As funções de hash são projetadas para serem fáceis de calcular em uma direção e efetivamente impossíveis de reverter.
  • Comprimento de saída fixo: Independentemente de a entrada ter um byte ou um gigabyte, a saída tem sempre o mesmo comprimento. O SHA-256 sempre produz um digest de 256 bits (32 bytes).
  • Efeito avalanche: Uma mudança de um único bit na entrada transforma completamente a saída. O hash de hello não se parece em nada com o hash de hello! — eles compartilham zero estrutura previsível. Isso torna os hashes úteis como impressões digitais.

Uma quinta propriedade — a resistência a colisões — separa os hashes criptograficamente fortes dos quebrados: deve ser computacionalmente inviável encontrar duas entradas diferentes que produzam a mesma saída. É aqui que o MD5 e o SHA-1 falharam.

MD5: rápido, onipresente e quebrado para segurança

O MD5 (Message Digest 5) foi projetado por Ron Rivest e publicado em 1991. Ele produz um digest de 128 bits (16 bytes), tipicamente representado como uma string hexadecimal de 32 caracteres, como 5d41402abc4b2a76b9719d911017c592. Por mais de uma década, foi o algoritmo de hash dominante para tudo, de checksums de arquivos a armazenamento de senhas.

Em 2004, criptógrafos demonstraram ataques de colisão práticos contra o MD5. Em 2008, pesquisadores haviam usado ataques de colisão para forjar um certificado de autoridade certificadora falso, confiável por todos os principais navegadores. O MD5 está agora definitivamente quebrado para qualquer propósito de segurança em que a resistência a colisões importe.

Onde o MD5 ainda é aceitável:

  • Verificações de integridade de arquivos sem fins de segurança, em que você controla tanto a geração quanto a verificação (confirmar que um arquivo não foi corrompido em trânsito, não que ele não foi adulterado).
  • Checksums em sistemas internos em que um agente mal-intencionado não está no modelo de ameaças.
  • Compatibilidade com sistemas legados, onde você não tem escolha a não ser corresponder a uma implementação existente.
  • Chaves de cache e mapas de hash, em que a segurança é irrelevante e a velocidade importa.

Onde o MD5 nunca deve ser usado: certificados TLS, assinaturas digitais, assinatura de código ou qualquer coisa em que um atacante possa se beneficiar de encontrar uma colisão.

SHA-1: 160 bits, descontinuado, ainda em toda parte

O SHA-1 (Secure Hash Algorithm 1) foi publicado pelo NIST em 1995 e produz um digest de 160 bits. Foi o padrão para certificados TLS, assinaturas digitais e assinatura de software ao longo dos anos 2000. O Project Zero do Google demonstrou uma colisão prática de SHA-1 em 2017 (o ataque SHAttered), produzindo dois arquivos PDF diferentes com hashes SHA-1 idênticos. Isso encerrou o uso do SHA-1 em TLS — todos os principais fornecedores de navegadores pararam de aceitar certificados SHA-1 naquele mesmo ano.

O SHA-1 ainda é encontrado em alguns lugares notáveis:

  • Git: O Git historicamente usou o SHA-1 para identificar cada objeto em um repositório — commits, blobs, trees e tags. O Git está migrando ativamente para o SHA-256 (veja abaixo), mas repositórios Git em SHA-1 continuam extremamente comuns. Para esse caso de uso, a resistência a colisões importa menos porque um atacante precisaria de acesso ao sistema de arquivos para explorar uma colisão.
  • Sistemas de autenticação legados e implementações de HMAC mais antigas.
  • Alguns softwares corporativos mais antigos que não foram atualizados.

Para qualquer trabalho novo: evite o SHA-1. Use SHA-256 ou SHA-512.

SHA-256: o padrão atual

O SHA-256 faz parte da família SHA-2, publicada pelo NIST em 2001. Ele produz um digest de 256 bits (32 bytes) — o dobro do comprimento de saída do MD5 e 60% maior que o SHA-1. Nenhum ataque prático de colisão ou de pré-imagem contra o SHA-256 foi demonstrado. Ele continua sendo o padrão para hashing sensível à segurança em 2026.

O SHA-256 é usado em toda parte:

  • Certificados TLS: O CA/Browser Forum determinou o SHA-256 como o mínimo para assinaturas de certificados. Toda conexão HTTPS que você faz é ancorada pelo SHA-256.
  • Assinatura de código: O macOS, o Windows Authenticode e os gerenciadores de pacotes do Linux (APT, RPM) usam SHA-256 para verificar a integridade do software.
  • Tokens JWT: O algoritmo HS256 nos JSON Web Tokens é HMAC-SHA-256. É de longe o algoritmo de assinatura de JWT mais comum em sistemas implantados.
  • Bitcoin: O algoritmo de prova de trabalho do Bitcoin é o SHA-256 duplo (SHA-256 aplicado duas vezes).
  • Git (próxima geração): O formato de objeto SHA-256 do Git (ativado com --object-format=sha256) usa SHA-256 para todos os IDs de objeto.
  • Verificação de integridade de arquivos publicada junto aos downloads de software.

Se você precisa escolher uma função de hash e não tem restrições específicas, o SHA-256 é a escolha padrão correta em 2026.

SHA-512: saída maior, às vezes mais rápida

O SHA-512 também faz parte da família SHA-2 e produz um digest de 512 bits (64 bytes). Ele oferece uma margem de segurança maior do que o SHA-256 — 512 bits de saída significam que o espaço teórico do ataque de força bruta é 2256 vezes maior. Na prática, essa margem adicional é irrelevante para a maioria das aplicações, já que o SHA-256 já é computacionalmente inviável de quebrar.

A característica de desempenho contraintuitiva: o SHA-512 é mais rápido do que o SHA-256 em CPUs modernas de 64 bits ao gerar hash de grandes volumes de dados. O SHA-512 processa dados em blocos de 1024 bits com operações de palavra de 64 bits, enquanto o SHA-256 usa blocos de 512 bits com operações de 32 bits. Em um processador de 64 bits, as operações de 64 bits mapeiam de forma mais eficiente para o hardware. Isso torna o SHA-512 a escolha preferida para aplicações que geram hash de arquivos grandes em servidores de 64 bits.

Use o SHA-512 quando:

  • Você está gerando hash de grandes volumes de dados em hardware de 64 bits e quer máxima taxa de transferência.
  • Seu sistema exige a margem de segurança adicional por motivos regulatórios ou de conformidade.
  • Você está implementando HMAC-SHA-512 (usado em algumas implementações de JWT com HS512).

Tabela de comparação de algoritmos

AlgoritmoComprimento da saídaVelocidade (relativa)Status de segurançaCasos de uso comuns
MD5128 bits (32 caracteres hex)O mais rápidoQuebrado — colisões demonstradasChecksums sem fins de segurança, chaves de cache, sistemas legados
SHA-1160 bits (40 caracteres hex)RápidoDescontinuado — existem colisões práticasGit legado, TLS antigo (descontinuado), alguma autenticação legada
SHA-256256 bits (64 caracteres hex)RápidoSeguro — padrão atualCertificados TLS, JWT (HS256), assinatura de código, Bitcoin
SHA-512512 bits (128 caracteres hex)O mais rápido em 64 bits para grandes volumes de dadosSeguro — margem de segurança maiorHash de arquivos grandes, JWT (HS512), aplicações de alta segurança

Verificação de integridade de arquivos: um exemplo prático

Um dos usos mais comuns e legítimos dos hashes criptográficos é verificar que um arquivo baixado é exatamente o que o publicador pretendia — não corrompido em trânsito e não adulterado por terceiros. A maioria dos grandes projetos de software publica checksums SHA-256 junto aos seus downloads.

O fluxo de trabalho se parece com isto:

  • Baixe o arquivo da fonte oficial.
  • Baixe o checksum publicado da mesma fonte oficial (idealmente assinado com PGP).
  • Calcule o hash SHA-256 do arquivo baixado.
  • Compare o hash que você calculou com o hash publicado, caractere por caractere. Qualquer diferença significa que o arquivo não é o que o publicador distribuiu.

O Gerador de Hash do BrowseryTools suporta hash de arquivos — arraste um arquivo e ele calculará o hash localmente no seu navegador sem enviar nada. Compare o resultado diretamente com o checksum publicado.

Armazenamento de senhas: a única coisa que os hashes não conseguem fazer com segurança

Aviso crítico: nunca armazene senhas usando funções de hash comuns

Armazenar senhas como hashes MD5, SHA-256 ou SHA-512 — mesmo com um salt — é inseguro e uma vulnerabilidade séria em qualquer sistema de produção. Veja por quê:

  • As funções de hash de propósito geral são projetadas para serem rápidas. Uma GPU moderna consegue calcular bilhões de hashes SHA-256 por segundo. Se o seu banco de dados for violado, um atacante pode quebrar por força bruta todas as senhas comuns em minutos.
  • As rainbow tables — tabelas de consulta pré-computadas que mapeiam hashes para entradas — conseguem quebrar hashes sem salt de senhas comuns em milissegundos.
  • Mesmo com um salt único por usuário, a pura velocidade do SHA-256 facilita o ataque a senhas fracas ou de força média em escala.

Use uma função de hash de senhas em vez disso: bcrypt, scryptou Argon2 (o vencedor da Password Hashing Competition). Estas são deliberadamente lentas e intensivas em memória, tornando os ataques de força bruta ordens de magnitude mais caros. A maioria dos frameworks modernos os inclui por padrão. O Argon2id é a recomendação atual para novos sistemas.

Como o Git usa o SHA-1 (e está migrando para o SHA-256)

O Git usa uma função de hash para identificar cada objeto em um repositório. Cada commit, arquivo (blob), listagem de diretório (tree) e tag é armazenado no banco de dados de objetos sob seu hash SHA-1. Quando você executa git log, as longas strings hexadecimais que você vê — como c206f4b3a9d72bc0e53a0e1a6e4bdf8c7f9d2e51 — são hashes SHA-1 dos objetos de commit.

O Git escolheu o SHA-1 em 2005 por velocidade e porque, na época, o SHA-1 não estava quebrado. O papel dos hashes no Git é ligeiramente diferente do uso tradicional de segurança: o Git os usa como chaves de armazenamento endereçáveis por conteúdo, não como provas de autenticação. O conteúdo em si é o que você confia — o hash é apenas uma forma eficiente de localizá-lo e detectar corrupção acidental.

Após a colisão SHAttered de SHA-1 em 2017, o projeto Git começou a trabalhar na transição para o SHA-256. O novo formato de objeto (--object-format=sha256) está disponível no Git 2.29+ e é usado por padrão em alguns novos provedores de hospedagem de repositórios. Repositórios existentes podem ser migrados, embora a transição seja complexa porque cada ID de objeto muda.

HMAC: autenticação de mensagens baseada em hash

Um hash simples verifica a integridade dos dados (os dados não mudaram), mas não a autenticidade (os dados vieram de quem você acha que vieram). Se um atacante puder interceptar uma mensagem e recalcular o hash após modificá-la, um hash simples não oferece proteção alguma.

O HMAC (Hash-based Message Authentication Code) resolve isso incorporando uma chave secreta ao cálculo do hash. O resultado só pode ser produzido por alguém que conheça a chave. Verificar um HMAC prova tanto que os dados estão intactos quanto que foram produzidos por uma parte com acesso ao segredo compartilhado.

O HMAC-SHA256 está em toda parte:

  • Tokens JWT (HS256): O servidor assina o cabeçalho e o payload do token com HMAC-SHA256 usando uma chave secreta. Os clientes não conseguem forjar tokens válidos sem a chave.
  • Assinatura de requisições de API: O AWS Signature Version 4 usa HMAC-SHA256 para autenticar requisições de API. Os detalhes da requisição e uma chave de assinatura derivada são processados em hash juntos, de modo que nenhum deles pode ser modificado sem invalidar a assinatura.
  • Integridade de cookies: Muitos frameworks web usam HMAC para assinar cookies de sessão, impedindo que os usuários adulterem seus próprios dados de sessão.

Como usar o Gerador de Hash do BrowseryTools

O Gerador de Hash suporta a geração de hash tanto de entrada de texto quanto de uploads de arquivos inteiramente no seu navegador. Veja como funciona:

  • Hash de texto: Cole qualquer texto no campo de entrada. A ferramenta calcula imediatamente e exibe o hash para cada algoritmo suportado simultaneamente — MD5, SHA-1, SHA-256 e SHA-512 — para que você possa compará-los lado a lado e escolher o que precisa.
  • Hash de arquivos: Clique na entrada de arquivo ou arraste e solte qualquer arquivo. O arquivo é lido pela File API do seu navegador e tem o hash calculado localmente. Arquivos grandes são processados em pedaços para evitar pressão de memória. Nenhum byte do seu arquivo sai do seu dispositivo.
  • Escolha o algoritmo: Selecione o algoritmo específico em que se concentrar para o seu caso de uso. O digest hexadecimal completo é exibido e pode ser copiado com um clique.
  • Baixar como arquivo: Para fins de documentação ou distribuição, exporte o digest do hash como um arquivo de texto — útil para publicar checksums junto às suas próprias versões de software.

Privacidade: a Web Crypto API

Tudo permanece no seu dispositivo. O Gerador de Hash do BrowseryTools usa a API embutida do navegador window.crypto.subtle (a Web Crypto API) para calcular hashes da família SHA. Essa é a criptografia nativa implementada pelo motor C++ do seu navegador — não matemática em JavaScript. Para o MD5, uma implementação em JavaScript puro roda localmente. Em ambos os casos, nenhum dado — nem um único byte do seu texto ou do conteúdo do seu arquivo — é jamais transmitido aos servidores do BrowseryTools nem a qualquer serviço de terceiros. O cálculo do hash acontece inteiramente dentro do processo do seu navegador.

Escolhendo o algoritmo certo: um guia de decisão

  • Integridade de arquivos / checksums (sem fins de segurança): MD5 ou SHA-256. O SHA-256 é preferido para qualquer coisa voltada ao público, mesmo que o modelo de ameaças seja apenas a corrupção acidental, já que usar um algoritmo quebrado por escolha é difícil de justificar a auditores.
  • TLS, assinatura de código, operações com certificados: SHA-256 (obrigatório — o SHA-1 é rejeitado).
  • Assinatura de JWT: HMAC-SHA-256 (HS256) para simétrico, ou RS256/ES256 para assimétrico. Nunca MD5 ou SHA-1.
  • Armazenamento de senhas: Argon2id, bcrypt ou scrypt. Nenhuma variante de SHA.
  • Hash de arquivos grandes em servidores de 64 bits: SHA-512 para a melhor taxa de transferência.
  • Margem máxima de segurança: SHA-512 ou SHA-3 (SHA3-256, SHA3-512).
  • Compatibilidade com sistemas legados: O que o sistema legado exigir — mas planeje a migração para longe do MD5 e do SHA-1.

Gere hashes MD5, SHA-1, SHA-256 e SHA-512 instantaneamente

Cole texto ou solte um arquivo. Todo o cálculo de hash acontece no seu navegador usando a Web Crypto API. Nada é enviado. Nada é registrado.

Abrir Gerador de Hash →

🛠️

Try the Tools — 100% Free, No Sign-Up

Everything runs in your browser. No uploads. No accounts. No ads.

Explore All Tools →