Gere hashes MD5, SHA-1, SHA-256 e SHA-512 a partir de texto ou arquivos. Usa Web Crypto API nativa para SHA e JavaScript puro para MD5, tudo no navegador.
Calcula hashes MD5, SHA-1, SHA-256 e SHA-512 a partir de entrada de texto ou arquivo. Os hashes SHA usam a Web Crypto API nativa do navegador (crypto.subtle.digest). MD5 é calculado com uma implementação em JavaScript puro da RFC 1321. Todo o processamento ocorre do lado do cliente.
Um hash (ou resumo da mensagem) é uma cadeia de comprimento fixo produzida por uma função matemática que mapeia entrada de tamanho arbitrário para uma impressão digital compacta. As funções hash criptográficas possuem três propriedades críticas: saída determinista (a mesma entrada sempre produz o mesmo hash), computação unidirecional (não é possível inverter o hash para recuperar a entrada original) e resistência a colisões (é computacionalmente inviável encontrar duas entradas diferentes que produzam o mesmo hash). Hashes são usados para verificação de integridade de dados, assinaturas digitais, armazenamento de senhas (com funções hash lentas como bcrypt), endereçamento de conteúdo em sistemas distribuídos e somas de verificação.
Uma função hash criptográfica recebe uma entrada de qualquer tamanho e produz uma saída de tamanho fixo que é determinística (a mesma entrada sempre produz a mesma saída), rápida de calcular e não invertível. Duas propriedades de segurança importantes são a resistência a colisões (é difícil encontrar duas entradas com o mesmo hash) é a resistência a pré-imagem (é difícil encontrar uma entrada que produza um hash dado).
SHA-256 e SHA-512 fazem parte da família SHA-2, projetada pela NSA e publicada pelo NIST. Não estão quebrados e são a opção padrão para verificação de integridade, assinaturas digitais e endereçamento de conteúdo. SHA-1 tem ataques de colisão teóricos e está depreciado para uso em segurança.
MD5 foi projetado por Ronald Rivest em 1991. Ataques de colisão foram demonstrados em 2004 e seguiram explorações práticas. MD5 ainda é amplamente usado para checksums não criptográficos: verificar downloads de arquivos, armazenamento endereçável por conteúdo e deduplicação.
Ao hashear arquivos, esta ferramenta lê o arquivo na memória e passa os bytes brutos para cada implementação de hash. Arquivos grandes podem usar memória significativa. Para arquivos acima de 100 MB, considere hashear no terminal com ferramentas nativas.
Compare o checksum SHA-256 de um arquivo baixado com o valor publicado pelo fornecedor. Se corresponderem, o arquivo não foi corrompido ou adulterado durante a transferência.
Use MD5 para gerar chaves de cache deterministicamente a partir de conteúdo. Uma chave de cache baseada em hash garante que o conteúdo atualizado sempre receba uma nova chave.
Sistemas de armazenamento endereçável por conteúdo (como IPFS e Git) usam hashes como identificadores estáveis. O hash do conteúdo é o endereço.
MD5 produz 128 bits (32 caracteres hexadecimais). SHA-256 produz 256 bits (64 caracteres hexadecimais). O tamanho maior reduz a probabilidade de colisões acidentais. Mas a diferença mais importante: ninguém jamais demonstrou uma colisão SHA-256. Colisões MD5 são triviais de produzir com hardware moderno. Para qualquer contexto onde um adversário possa tentar forjar dados, use SHA-256.
Para usos não relacionados à segurança, MD5 é aceitável. É mais rápido e produz hashes mais curtos que são mais fáceis de ler e armazenar. Apenas esteja ciente de onde você está usando cada um.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.