LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 776|回复: 5

从文件产生的 md5 和

[复制链接]
发表于 2004-12-20 14:38:55 | 显示全部楼层 |阅读模式
能够重新得到源文件吗?或者,如果对源文件作了修改,能够由这个 md5sum 得到哪里被修改了?

我没有这方面的资料,还请大家帮忙,谢谢。
发表于 2004-12-20 17:46:45 | 显示全部楼层
md5是不可逆的。不能从md5码逆向得到扫描的文件内容。
它也不能确定文件内容是什么地方被修改了。如果要比较两个文件的不同。可以用cmp命令。
 楼主| 发表于 2004-12-20 18:53:55 | 显示全部楼层
下面这段话来自 ucf (Debian 中的一个命令)的手册页:
If the file <New file>.md5sum, or the directory <New file>.md5sum.d does not exist, or none of the md5sums match, we test the installed <Destination> file to see whether it is the same as the <New file>. If not, we ask the user whether they want us to replace the file.

... ... ... ...

/var/lib/ucf/hashfile, and /var/lib/ucf/hashfile.X, where X is a small integer, where previous versions of the hashfile are stored.


我无法找到旧的配置文件。此外,/var/lib/ucf/hashfile* 里只保存了文件名和与该文件名对应的文件的 md5sum。除了上面的推测外,还能怎样解释呢?
发表于 2004-12-21 19:52:30 | 显示全部楼层
md5的工作原理就是对文件进行扫描,得出一个固定长度的信息摘要。这个摘要和文件的内容有一一对应的关系。只要文件内容发动一个字节,这个摘要就会发生变化。如果两个文件内容完全一样,那么它们的md5码也肯定是一样的。
根据这个特性,如果要比较一个文件是否发生变化,或者比较两个文件是否完全一样,只要比较它们的md5码是否一样即可,不一定非得要比较两个文件。
 楼主| 发表于 2004-12-21 21:23:01 | 显示全部楼层
那么,至少能够确定哪里变化,从而指出新版本的变化吧?
发表于 2004-12-22 09:47:16 | 显示全部楼层
由于产生的信息摘要中没有包含位置信息,不能指出具体是哪里发生变化。只能知道有没有变化。你要想知道变化的具体位置,只有自己找。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表