|
[技术讨论]
[原创/教学]使用SHA-1和MD5值来确定你是否下载了完整的文件
1#
发表于 2013-12-11 23:28:53
|
查看: 12237 |
回复: 15
本帖最后由 Lwhite 于 2013-12-11 23:28 编辑
也许你经常看到网上的资源,尤其是一个文件比较巨大的资源会给出SHA-1和MD5值,它是用来检查文件完整性的,也许您不知道怎么用,所以现在来看一下到底要如何使用它。
当下载好一个文件时,您并不会知道它是否完整正确,这时WIN用户只需要使用Hasher(下载地址),把你下载好的文件拖拽进去,就能得出SHA-1和MD5值,只要和下载地址提供的对比,一样的话就说明这是完整的文件,就能知道你下载的文件是否完整。
Linux和OS X用户更简单,只需要在终端用sha1sum和md5sum命令在后面输入文件路径就能计算文件的sha-1和md5值。(终端很好用,无论是linux还是OS X)
与我资源帖子里提供的一致,那么这个文件就是完整的。
也许你会问,检查文件完整性有什么用?举两个例子,第一个例子,你在网上下载了一个超大的游戏,它分成了6个压缩包,当你解压到最后一个时,它提示错误了,这时你需要把之前解压出来的垃圾清理掉然后再重新下载压缩包才能用,非常的恼火。第二个例子,你下载了一个系统(WIN,OS X,Linux的某个发行版),你准备重装,装到一半出错了,你才发现你要装的系统是不完整的,这个问题比起一个游戏压缩包的不完整来说严重得多,要是你事前检查过文件完整性就不会遇到这么多不必要的麻烦了。
sha-1和md5都是哈希算法,无论我输入多么长的文字还有数据,它的结果都是相等长度的。而且对输入数据的改动异常敏感,一个文件哪怕是里面多了一个空格,甚至是两段几乎一样的声音文件,它都能输出不一样的数值。因此它可以作为一个文件的指纹来看待。
但它在这里是非对称的,也就是说算不回来,不可逆向操作,你没办法靠那堆哈希值把原来你输入的东西算回来,我们保存在电脑里的密码也是如此,即使你获得了我电脑里的密码保存的文件,或者你从论坛里掏出了我的密码文件,它们是以密文保存的(虽然不一定是哈希算法,也许是其他非对称算法)。也无法把密文算回来得知我是输入什么密码的。所以不需要担心你要评论登陆的个人博客还有注册的论坛帐号会被管理人员取得密码。因为它不知道你输入了什么。
那么电脑是怎么知道我是输入对的密码然后登陆呢?当我们设置了密码的时候,电脑会保存我们密码算出来的值,例如我的密码是123456。加密后就是$4$X6gUPaRt$bc26cw338LH/usZtueVl2W508+U$,当你下次登陆电脑输入密码的时候,电脑会把你输入的东西加密,要是加密后的结果和电脑里面保存的一样,那么你就是输入了对的密码,成功登陆了,大概是这样子。(可是虽然是非对称算法,保存电脑密码那个可彪悍得多)
@wzmknzd 朋友,您可以考虑增加一条建议让在网盘,渣雷快传发布大于1G的资源提供md5和sha-1值(只是建议,非强制),这是对下载者负责的一种行为,也能避免很多问题。
|
评分
-
查看全部评分
不要再问我要ID,我都已经多次告诉过你们 怎么找图了,去画师自己的页面去看才叫原汁原味,才叫最大的尊重。
|