MD5 e SHA-1 não são seguros para senhas; para armazená-las use bcrypt, scrypt ou Argon2.
O SHA-1 gera um resumo de 160 bits, 40 caracteres hexadecimais; para hello é aaf4c61d dcc5e8a2 dabede0f 3b482cd9 aea9434d. Os IDs de objetos do Git usam SHA-1 há muito tempo, mas desde a colisão SHAttered de 2017 ele não é mais aceito em certificados nem assinaturas novas.
Como usar
- Digite ou cole um texto: todos os hashes são atualizados enquanto você digita.
- Ou mude para Arquivos e solte um ou mais arquivos de qualquer tamanho. Eles são lidos em blocos com barra de progresso.
- Toque em qualquer hash para copiar. Ative Maiúsculas ou Base64 para mudar o formato de saída.
- Ative HMAC e digite uma chave secreta para obter assinaturas HMAC em vez de hashes simples.
- Cole um hash esperado em Verificar: a linha que confere fica destacada, ou aparece “Não confere”.
- O cálculo roda no seu navegador com WebAssembly. Textos, arquivos e chaves nunca são enviados.
- O texto é processado como bytes UTF-8 exatamente como digitado, com espaços e quebras de linha.
- MD5 e SHA-1 servem como checksum, mas não são seguros. Use SHA-256, SHA-3 ou BLAKE3 para dados sensíveis, e bcrypt ou Argon2 para senhas.
- HMAC funciona com MD5, SHA-1, SHA-2 e SHA-3. BLAKE2b, BLAKE3 e CRC32 ficam ocultos com HMAC ativo.
- Verificar ignora maiúsculas e espaços e também aceita valores em Base64.
Para que serve um hash
Um hash criptográfico transforma qualquer entrada numa impressão digital de tamanho fixo. Os mesmos bytes sempre geram o mesmo hash, e mudar um único bit altera cerca de metade dos bits do resultado. O SHA-256 da palavra hello é 2cf24dba 5fb0a30e 26e83b2a c5b9e29e 1b161e5c 1fa7425e 73043362 938b9824 (com espaços para facilitar a leitura); com Hello maiúsculo o valor é completamente diferente.
Ele serve para conferir downloads com o checksum publicado, achar arquivos duplicados, armazenar por conteúdo como o Git faz e assinar requisições de API com HMAC. O texto é processado como bytes UTF-8 exatamente como digitado, então um espaço no fim ou uma quebra de linha do Windows mudam o resultado.
Qual algoritmo escolher
MD5 (128 bits) e SHA-1 (160 bits) têm ataques de colisão práticos: servem para detectar corrupção acidental, não para segurança. SHA-256 e SHA-512 (FIPS 180-4) são a escolha segura para checksums e assinaturas. O SHA-3 (FIPS 202) tem um projeto diferente, mantido como reserva do SHA-2. O BLAKE3 é um hash recente e muito rápido em arquivos grandes. O CRC32 é um código de 32 bits para detectar erros, usado em ZIP, PNG e Ethernet; pega falhas de transmissão, mas é fácil de forjar.
Hash não é criptografia
Um hash não pode ser decodificado de volta. Mesmo assim, entradas curtas ou comuns podem ser descobertas por tentativa, por isso senhas devem ser guardadas com uma função lenta e com salt, como Argon2, scrypt ou bcrypt, e não com SHA-256 puro. O HMAC (RFC 2104) mistura uma chave secreta ao hash, então só quem tem a chave consegue gerar ou conferir a assinatura.
Perguntas frequentes
Como verifico o checksum de um arquivo?
Mude para Arquivos, solte o arquivo baixado e cole em Verificar o checksum divulgado. A linha do algoritmo que bate fica destacada; se nada bater, o arquivo é diferente ou está corrompido.
Dá para reverter ou descriptografar um hash?
Não. Hash é uma função de mão única. Entradas curtas, como senhas comuns, podem ser achadas testando muitos palpites, mas não existe chave que transforme o hash nos dados originais.
MD5 ainda é seguro?
Só para tarefas sem exigência de segurança, como detectar mudanças acidentais ou arquivos repetidos. É possível criar arquivos diferentes com o mesmo MD5, então para assinaturas e proteção contra adulteração use SHA-256 ou mais novo.
Qual a diferença entre SHA-256 e SHA-512?
O SHA-256 gera 256 bits (64 caracteres hexadecimais) e o SHA-512, 512 bits (128 caracteres). Os dois são da família SHA-2 e considerados seguros; o SHA-512 costuma ser mais rápido em processadores de 64 bits.
Meus arquivos são enviados para calcular o hash?
Não. Os arquivos são lidos em partes dentro do navegador e processados com WebAssembly, então até arquivos de vários gigabytes ficam no seu aparelho.
Por que meu hash é diferente do que meu código gera?
Quase sempre os bytes de entrada mudaram: uma quebra de linha a mais, outra codificação de texto ou saída em hexadecimal versus Base64. Confira espaços e finais de linha e compare no mesmo formato.