Ram*_*esh 11
两个文件内容相同,但不同的文件名:(文件1和文件2):
cat file1
this is a simple file
cat file2
this is a simple file
md5sum file1
7de45bf879db49de7e2eacea23e6c165 file1
md5sum file2
7de45bf879db49de7e2eacea23e6c165 file2
Run Code Online (Sandbox Code Playgroud)
两个文件内容不同,但相同的文件名:(文件1和文件1)
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
Run Code Online (Sandbox Code Playgroud)
从维基条目,
但是,现实世界中任何两个不同的文件都不太可能具有相同的 MD5 哈希值,除非它们是专门创建为具有相同的哈希值的。
但是,MD5算法有其自身的缺陷。
但是,现在很容易产生 MD5 冲突,创建文件的人可能会创建具有相同校验和的第二个文件,因此该技术无法防止某些形式的恶意篡改。此外,在某些情况下,校验和是不可信的(例如,如果它是通过与下载文件相同的渠道获得的),在这种情况下,MD5 只能提供错误检查功能:它会识别损坏或不完整的下载,下载较大的文件时,这变得更有可能。
我建议使用 sha1 来计算校验和,因为在使用sha1算法时产生冲突并不容易。生产SHA1校验是很容易的,你可以看到在这里。