网上说的都是2md5看是否一样,我想知道的问题如下:
1.第一次的md5哪里来的?别人不能篡改这个md5吗?
2.第二次的md5又到底是对什么md5?
3.这个md5校验是和文件完全分开的2个步骤是吗?
楼主,大概明白你的意思了,就是说比如一家公司要发布一个重要文件,创建修改保存后,查看文件此时的MD5值,然后把文件和MD5值一起发布到官网供别人下载,你的意思是如果黑客把这家公司的官网攻击了,篡改了此文件并把新的MD5值挂在网上,大家下载下后检测的MD5值和官网上的MD5值肯定会对上,但是文件是被篡改过的。是这个意思么?
文件和md5值分开。篡改了文件,md5值就不同了。
md5防止篡改的关键在于,它的碰撞算法以前一直没有找到,所以碰撞算法,就是修改原来的文件,同时保持修改后的文件和原文件md5一致。
不过后来,我国山东大学的杨教授搞定了碰撞算法。所以md5作为防篡改,已经不可靠了。类似的,sha1的碰撞算法,最近也被攻克。
得到的 MD5 值与下载页面提供的 MD5 值进行对比
这时就可以拿网站提供的串和新生成的串对比
这里都这么说,我想知道别人不修改你“得到的MD5值”吗?还有“这是可以拿到网址提供的串” 这个串别人如果攻击你,如果修改了文件,不把这个串一起修改的吗?
这个验证机制是这样的,大家下载到这个文件之后,这个文件就开始扩散传播了,有些人是直接从官网下载的,有些人是qq传的,网盘下的。。。假如我现在从别人U盘上获取到了这个文件,但是我怎么知道这个文件和官网的文件一样而没有被篡改过呢?那我就在本地查看这个文件的MD5值,然后和官网上的MD5值比对,如果对上了,就说明这个文件没被篡改过,否则就是被篡改过的。
就是终归有一个官方的默认情况下是对的的值,至于你说官网被黑了官网上的也被换了,那就不应该是MD5验证这套机制了内讨论的问题了。
都没答道点子上,官方的是用自己的秘钥加盐的,所以一般篡改难度很高啊。