O que é esta ferramenta?
O MD5 é uma função hash que transforma qualquer entrada numa impressão digital hexadecimal fixa de 32 caracteres. A mesma entrada produz sempre o mesmo hash, e mesmo uma alteração de um único caractere produz um resultado completamente diferente. Isto torna os hashes úteis para somas de verificação, chaves de cache, deduplicação e verificações de integridade dos dados.
Nota de segurança: o MD5 já não é seguro do ponto de vista criptográfico — é possível gerar colisões — pelo que não deve ser utilizado para palavras-passe ou assinaturas. Para esses fins, utilize o SHA-256 (também fornecido abaixo) ou um algoritmo de hash específico para palavras-passe, como o bcrypt. O MD5 continua a ser adequado para utilizações não relacionadas com a segurança, como somas de verificação e chaves de cache.
Por que usar?
- Gerar somas de verificação para verificar se um arquivo ou uma cadeia de caracteres não foi alterado acidentalmente.
- Criar chaves de cache determinísticas e IDs de deduplicação.
- Compare com um valor MD5 conhecido para verificar a integridade dos dados.
- Obtenha os algoritmos SHA-1 e SHA-256 num só lugar — não é necessário recorrer a uma segunda ferramenta.
- 100% local: os seus dados nunca saem do navegador.
Como usar
- Digite ou cole o seu texto na caixa de entrada.
- Clique em «Gerar hash».
- Leia os resultados de MD5, SHA-1 e SHA-256 (marque a opção «Maiúsculas» se o seu sistema exigir letras maiúsculas).
- Clique em «Copiar» ao lado do hash que precisa.
Exemplo
Entrada
helloResultado
MD5: 5d41402abc4b2a76b9719d911017c592
SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824Os hash são determinísticos: «hello» produz exatamente estes valores em todas as ferramentas, sempre.
Que hash deve utilizar?
Todas as três são funções de hash unidirecionais, mas não são intercambiáveis — a escolha certa depende inteiramente de se precisa de segurança ou apenas de uma «impressão digital».
| Algoritmo | Tamanho da saída | Utilize-o para | Não o utilize para |
|---|---|---|---|
| MD5 | 128 bits (32 caracteres hexadecimais) | Somas de verificação, chaves de cache, deduplicação, deteção de alterações acidentais em arquivos | Palavras-passe, assinaturas digitais, qualquer elemento sensível em termos de segurança — é possível criar colisões |
| SHA-1 | 160 bits (40 caracteres hexadecimais) | Compatibilidade com sistemas antigos (por exemplo, hashes de commits antigos do Git) | Novos modelos sensíveis em termos de segurança — já existem ataques de colisão práticos desde 2017 |
| SHA-256 | 256 bits (64 caracteres hexadecimais) | Assinaturas digitais, certificados TLS, blockchain, somas de verificação em que a resistência à adulteração é importante | Armazenar palavras-passe diretamente — mesmo o SHA-256 é demasiado rápido para isso; em vez disso, utilize o bcrypt, o scrypt ou o Argon2 |
Casos de utilização comuns
- Verificar se um arquivo baixado corresponde à soma de verificação do editor antes de o executar, calculando o hash do arquivo e comparando o resultado.
- Gerar uma chave de cache determinística a partir de um URL ou de uma cadeia de consulta, para que pedidos idênticos sejam sempre mapeados para a mesma entrada de cache.
- Eliminar registos duplicados de uma lista extensa, calculando o hash de cada um e comparando os hashes, em vez de comparar o texto completo.
- Verificar rapidamente se duas cópias de um arquivo são idênticas ao nível dos bytes, sem as abrir nem comparar diretamente.
Por que razão as colisões são importantes para a segurança, mas não para as somas de verificação
Uma colisão de hash significa que duas entradas diferentes produzem o mesmo resultado de hash — algo matematicamente inevitável para qualquer função de hash (uma vez que as entradas são infinitas e os resultados têm comprimento fixo), mas o risco prático depende inteiramente do caso de utilização. No caso de uma assinatura de segurança, uma colisão deliberadamente criada permite que um atacante substitua um arquivo legítimo por um malicioso, mantendo o mesmo hash, o que é exatamente o que tem sido demonstrado contra o MD5 desde 2004 e contra o SHA-1 desde 2017. No caso de uma soma de verificação ou chave de cache, ninguém está tentando criar uma colisão — trata-se apenas de verificar se um arquivo foi acidentalmente corrompido ou se duas cadeias de caracteres arbitrárias são, por acaso, idênticas — pelo que a mesma fraqueza matemática que compromete o caso de utilização do MD5 em matéria de segurança não tem, essencialmente, qualquer impacto nas suas utilizações não relacionadas com a segurança.
Perguntas frequentes
É possível descodificar um hash MD5 para recuperar o texto original?
Não — o hash é unidirecional por definição; não é possível calcular o valor original a partir do hash. Os sites de «descodificação de MD5» limitam-se a procurar os hashes em enormes tabelas pré-calculadas de entradas comuns, razão pela qual as entradas únicas não podem ser revertidas.
O MD5 é seguro para guardar palavras-passe?
Não, de forma alguma. O MD5 é fácil de quebrar por força bruta e está sujeito a ataques de colisão conhecidos. Utilize o bcrypt, o scrypt ou o Argon2 para as palavras-passe. O MD5 só é aceitável para fins não relacionados com a segurança, como somas de verificação.
Por que é que o mesmo texto apresenta um hash diferente do de outra ferramenta?
Diferenças normalmente imperceptíveis: um caractere de nova linha ou um espaço no final, terminações de linha diferentes (\r\n vs \n) ou uma codificação de texto diferente. Uma entrada com bytes idênticos produz sempre um hash idêntico.
Qual é a diferença entre o MD5, o SHA-1 e o SHA-256?
Diferem no comprimento do resultado e na segurança: o MD5 (128 bits) e o SHA-1 (160 bits) já foram ambos ultrapassados em termos de segurança; o SHA-256 (256 bits) é a norma atual e continua a ser seguro. Em caso de dúvida, utilize o SHA-256.
O meu texto é enviado para um servidor para ser submetido a um processo de hash?
Não. O MD5 é calculado com JavaScript e o SHA-1/SHA-256 com a API Web Crypto integrada no seu navegador — tudo fica no seu dispositivo.