windows和linux根据文件的md5值判断两个文件是否一样

说白了,MD5 就是可以快速将文件变成1 2 8 位数字指纹的东西,就像在文件上盖上唯一的公章一样。
我们先来说说最重要的事情。
MD5 在2 004 年就被发现存在安全漏洞,所以现在主要用于检查文件是否被篡改,而不是保证数据安全。
我们去年跑的项目大约有3 000条数据,完全依靠MD5 来保证每个文件的传输过程中没有问题。
还有一点是,虽然Linux和Windows都可以计算MD5 ,但是用法却相差甚远。
Linux直接对文件名进行md5 求和,简单粗暴。
对于Windows,您必须使用certutil命令并添加MD5 ,例如certutil-hashfile文件名MD5 一开始我以为MD5 是万能的,后来发现是错误的。
很容易受到彩虹表攻击,所以现在很多地方都开始使用更安全的SHA系列算法。
等等,还有一件事。
很多人都没有注意到这一点。
MD5 虽然速度快,但是生成的值的长度是固定的。
因此,如果两个文件的内容完全不同,它们的MD5 值也会不同。
但当内容相似度较高时,MD5 值可能相同。
这就是所谓的碰撞问题。
因此,MD5 更适合验证文件是否被篡改,而不是判断文件内容是否完全一致。
我认为如果你还在使用MD5 来保证数据安全的话值得一试。

LINUX中比较文件是否相同

去年夏天,我在办公室整理文件时发现了同一份报告的两个版本,一个是我老板修改过的,另一个是初稿。
当时我想这两个文档肯定有很多不同之处,所以我必须想办法进行比较。
我随意打开终端,输入 diff 命令,然后快速连续输入两个文件名。
命令行很快在许多不同的地方响起。
我仔细看了一会儿,才发现老板的小改动,比如在某个数字后面加了一个零,在标题中加了一个逗号。
事实证明,通过 diff 命令可以清楚地看出细节上的差异。
等等,我突然意识到这个diff命令还可以生成编辑脚本?我尝试了一下,果然,创建的脚本确实帮助我批量修改了初稿。
但如何使用这个脚本呢?还需要研究。