Uma explicação completa do MD5 e da família SHA, como funciona a verificação de integridade de ficheiros, e que algoritmo usar consoante o caso.
Uma função de hash é uma operação matemática que converte dados de qualquer comprimento (texto, um ficheiro, uma imagem) numa cadeia de caracteres de comprimento fixo e única para esses dados. Os mesmos dados produzem sempre o mesmo hash; alterar um único bit dos dados muda o hash por completo. Esta ferramenta calcula os resumos MD5, SHA-1, SHA-256, SHA-384 e SHA-512 do texto que introduzes ou do ficheiro que carregas, todos ao mesmo tempo.
O que é o MD5?
Resposta rápidaMD5 é um algoritmo de hash mais antigo que converte os dados num resumo de 128 bits (32 caracteres hexadecimais). É rápido mas é considerado criptograficamente fraco. Como existem ataques de colisão, não deve ser usado em trabalhos críticos para a segurança (palavras-passe, assinaturas) — é melhor reservá-lo para trabalhos não críticos como checksums rápidos de ficheiros.
Como se calcula o SHA-256?
Resposta rápidaO SHA-256 divide os dados em blocos de 512 bits e aplica uma função de compressão de 64 rondas a cada bloco, produzindo um resumo de 256 bits (64 caracteres hexadecimais). No navegador isto é feito à velocidade do hardware e de forma segura através de crypto.subtle.digest('SHA-256', data); esta ferramenta chama essa função automaticamente por ti.
Como se verifica a integridade de um ficheiro (checksum)?
Resposta rápidaCarrega o ficheiro descarregado no separador «Ficheiro», e cola o hash fornecido pelo editor no campo «Hash esperado». A ferramenta calcula o hash real do ficheiro e compara-o automaticamente; uma coincidência significa que o ficheiro está intacto e sem modificações.
Esta verificação é especialmente útil para detetar erros causados por uma ligação interrompida ou uma transferência danificada em ficheiros grandes (instaladores, imagens de disco, ficheiros comprimidos). Os editores costumam preferir o SHA-256 por ser muito mais seguro do que o MD5 ou o SHA-1.
Qual é a diferença entre MD5 e SHA?
Resposta rápidaO MD5 produz um resumo de 128 bits, o SHA-1 um de 160 bits, o SHA-256 um de 256 bits, o SHA-384 um de 384 bits e o SHA-512 um de 512 bits. O MD5 e o SHA-1 são considerados criptograficamente quebrados (podem gerar-se colisões); o SHA-256 e o SHA-512 são os padrões considerados seguros hoje em dia e são usados em certificados TLS e assinaturas digitais.
É possível reverter um hash?
Resposta rápidaNão, as funções de hash são de sentido único; é matematicamente impossível passar de um resumo para os dados originais. No entanto, entradas curtas ou previsíveis podem ser encontradas usando tabelas rainbow pré-calculadas — por isso as palavras-passe devem sempre incluir um salt adicionado antes de lhes aplicar o hash.