Два файла с одинаковым содержимым, но разными именами файлов: ( file1 и file2 ):
cat file1
this is a simple file
cat file2
this is a simple file
md5sum file1
7de45bf879db49de7e2eacea23e6c165 file1
md5sum file2
7de45bf879db49de7e2eacea23e6c165 file2
Два файла с различным содержанием, но одинаковыми именами файлов: ( file1 и file1 )
cat file1
this is a simple file
cat file1
this is a simple file with extra contents
md5sum file1 #first file1
7de45bf879db49de7e2eacea23e6c165 file1
md5sum file1 #second file1
c7c8f3fd9ddd7a926c31416a69063e4e file1
Из вики ,
Однако очень маловероятно, что любые два неидентичных файла в реальном мире будут иметь одинаковый хэш MD5, если только они не были специально созданы для того, чтобы иметь одинаковый хеш.
Но алгоритм MD5 имеет свои недостатки.
Однако теперь, когда генерировать коллизии MD5 легко, пользователь, создавший файл, может создать второй файл с той же контрольной суммой, поэтому этот метод не может защитить от некоторых форм злонамеренного вмешательства. Кроме того, в некоторых случаях контрольной сумме нельзя доверять (например, если она была получена по тому же каналу, что и загруженный файл), и в этом случае MD5 может предоставлять только функции проверки ошибок: он распознает поврежденную или неполную загрузку, что становится более вероятным при загрузке больших файлов.
Я бы порекомендовал использовать sha1 для вычисления контрольной суммы, поскольку создание коллизий не так просто при использовании алгоритмов sha1 . Создание контрольной суммы sha1 довольно просто, как вы можете видеть здесь .