Pular para o conteúdo
nearnull

Gerador de Hash

Gere digests MD5, SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512 de qualquer texto de uma vez. Funciona totalmente no seu navegador: nada é enviado a nenhum servidor.

Texto de entrada
Digests

Os seis digests aparecem aqui conforme você digita

O que é uma função de hash?

Uma função de hash transforma uma entrada de qualquer tamanho em uma impressão digital de tamanho fixo. A mesma entrada sempre produz o mesmo digest, mudar um único caractere produz um completamente diferente, e não há como rodar a função ao contrário para recuperar o texto original. Esta ferramenta calcula os seis digests de uma vez a partir dos bytes UTF-8 do que você digita, para você comparar formatos lado a lado. SHA-1, SHA-256, SHA-384 e SHA-512 são calculados pela API de criptografia nativa do seu navegador; MD5 e SHA-224 são calculados em JavaScript aqui, porque o padrão Web Crypto não os inclui. Em qualquer um dos casos, nada sai do seu dispositivo.

Como escolher um algoritmo

MD5 (128 bits)

Quebrado para segurança desde 2004: colisões podem ser produzidas em um notebook em segundos. Continua em todo lugar como checksum sem fins de segurança, como ETag ou como chave de cache, e continua sendo o que muitos sistemas legados e sites de listagem de arquivos publicam. Nunca use para senhas, assinaturas, ou para provar que um arquivo não foi alterado.

SHA-1 (160 bits)

Também está quebrado: uma colisão prática foi demonstrada em 2017 e os navegadores pararam de confiar em certificados SHA-1. O Git ainda o usa para os ids dos seus objetos, e muitas APIs ainda assinam com ele, então você vai continuar encontrando. Trate como o MD5: serve como identificador, não como garantia de segurança.

SHA-224 e SHA-256

Os membros de 32 bits da família SHA-2, e o padrão sensato hoje. SHA-256 é o que certificados TLS, protocolos de blockchain, checksums de pacotes e tokens assinados usam. SHA-224 é o SHA-256 truncado em 224 bits, útil quando um protocolo especifica exatamente esse tamanho.

SHA-384 e SHA-512

Os membros de 64 bits do SHA-2. Não são apenas mais longos: usam um tamanho de palavra interno diferente, o que os torna mais rápidos que o SHA-256 em hardware de 64 bits. O SHA-384 é o SHA-512 truncado, e é o que várias suítes de cifra TLS e algoritmos de JWT especificam.

Exemplos

O mesmo digest calculado nas linguagens que você provavelmente vai usar:

JavaScript
const buf = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(str));
const hex = [...new Uint8Array(buf)].map((b) => b.toString(16).padStart(2, "0")).join("");
Python
import hashlib

hashlib.sha256(text.encode("utf-8")).hexdigest()
Java
MessageDigest.getInstance("SHA-256")
  .digest(text.getBytes(StandardCharsets.UTF_8));
Go
import "crypto/sha256"

fmt.Printf("%x", sha256.Sum256([]byte(text)))
PHP
hash("sha256", $text);
Shell
printf "%s" "$text" | sha256sum
printf "%s" "$text" | md5sum

Casos de uso

Verificar um download

Cole o checksum publicado ao lado de um arquivo e compare com o que você calcula localmente. Se um único caractere diferir, o arquivo que você tem não é o que foi publicado.

Reproduzir uma assinatura ou uma chave de cache

Quando uma API rejeita sua requisição ou um cache não encontra a entrada, gerar o hash da string exata que você acha que enviou é a forma mais rápida de descobrir se sua entrada difere da que o outro lado esperava.

Deduplicar registros

Gerar o hash de uma versão normalizada de um registro dá uma chave curta e de tamanho fixo para detectar duplicados sem comparar campo por campo.

Conferir fixtures e migrações

Muitas ferramentas de migração e sistemas de configuração guardam um checksum de cada arquivo para detectar edições posteriores. Calcular esse digest na mão diz por que uma ferramenta está reportando um arquivo como alterado.

Perguntas frequentes

Um hash pode ser revertido ou descriptografado?
Não. O hash é de mão única por construção e não é criptografia: não existe chave nem operação de descriptografar. Sites que dizem 'descriptografar MD5' estão procurando o digest em uma tabela de valores já processados, o que só funciona para entradas que alguém já submeteu, como senhas comuns ou strings curtas.
Qual algoritmo devo usar?
SHA-256, a menos que algo indique o contrário. Use SHA-384 ou SHA-512 quando um protocolo pedir ou quando estiver em hardware de 64 bits e quiser mais velocidade por byte. Use MD5 ou SHA-1 apenas quando precisar corresponder a um sistema existente, nunca para trabalho novo com implicações de segurança.
Posso gerar hash de senhas com isto?
Não. Funções de hash comuns são feitas para serem rápidas, que é exatamente o oposto do que você quer para senhas: alguém com um banco de dados roubado pode testar bilhões de tentativas por segundo. Senhas precisam de um algoritmo deliberadamente lento e com salt, como bcrypt, scrypt ou Argon2. Esta ferramenta é para checksums e impressões digitais, não para armazenar credenciais.
Por que recebo um digest diferente do de outra ferramenta?
Quase sempre porque os bytes de entrada diferem, não o algoritmo. Os suspeitos habituais são uma quebra de linha no final (muitas ferramentas de linha de comando adicionam uma, esta página não), finais de linha diferentes (LF versus CRLF), espaços no início ou no fim, ou uma codificação de texto diferente. Esta ferramenta processa exatamente os bytes UTF-8 do que está na caixa.
O que significa 'sem resistência a colisões' ao lado de MD5 e SHA-1?
Significa que alguém pode construir duas entradas diferentes que produzem o mesmo digest. Isso quebra qualquer uso em que o hash deveria provar qual conteúdo você tem, como assinaturas ou verificações de integridade. Não significa que alguém possa recuperar sua entrada a partir do digest, e não tira a utilidade deles como identificadores simples.
Posso gerar o hash de um arquivo aqui?
Ainda não: esta ferramenta processa texto que você digita ou cola. Processar um arquivo grande de forma síncrona congelaria a página, então o suporte a arquivos precisa de leitura em blocos, o que está planejado separadamente. Por enquanto, use sha256sum, shasum ou certutil na linha de comando para arquivos.
Minha entrada é enviada para algum lugar?
Não. Todos os digests são calculados localmente no seu navegador, seja pela API de criptografia integrada ou por JavaScript rodando nesta página. Nada do que você digitar é transmitido ou armazenado em nenhum servidor.