Não confie em somas MD5.
As somas MD5 não são uma maneira confiável de verificar duplicatas, elas são apenas uma maneira de verificar as diferenças.
Use MD5s para encontrar duplicatas possíveis candidatas e, em seguida, para cada par que compartilha um MD5
- Abre os dois arquivos
- Procura esses arquivos até que um seja diferente.
Estou vendo downvoted por pessoas fazendo abordagens ingênuas para arquivar Identidade duplicada, Se você for confiar inteiramente em um algoritmo de hash, pelo amor de Deus, use algo mais difícil como SHA256 ou SHA512 , pelo menos você reduzirá a probabilidade a um grau razoável, tendo mais bits verificados. MD5 é extremamente fraco para condições de colisão.
Eu também aconselho as pessoas a lerem listas de discussão aqui intituladas 'verificação de arquivos': link
Se você disser "O MD5 pode identificar exclusivamente todos os arquivos exclusivamente", você terá um erro lógico.
Dado um intervalo de valores, de comprimentos variados de 40.000 bytes de comprimento a 100.000.000.000 bytes de comprimento, o número total de combinações disponíveis para esse intervalo muito excede o número possível de valores representados por MD5, pesando apenas 128 bits de comprimento.
Representa 2 ^ 100.000.000.000 combinações com apenas 2 ^ 128 combinações? Eu não acho isso provável.
O caminho menos ingênuo
A maneira menos ingênua e mais rápida de eliminar duplicatas é a seguinte.
- Por tamanho : arquivos com tamanho diferente não podem ser idênticos. Isso leva pouco tempo, pois não precisa abrir o arquivo.
- Por MD5 : Arquivos com valores diferentes de MD5 / Sha não podem ser idênticos. Isso leva um pouco mais de tempo porque ele tem que ler todos os bytes no arquivo e fazer a matemática neles, mas faz várias comparações mais rápidas.
- Falha nas diferenças acima : execute uma comparação byte a byte dos arquivos. Este é um teste lento para executar, e é por isso que é deixado até depois que todos os outros fatores eliminadores tenham sido considerados.
Fdupes faz isso. E você deve usar um software que use os mesmos critérios.