引言
我们今天来说一下怎么检测从各个“百度”站点推荐下载的程序包是不是正版的?我们知道有很多的程序包,都被人非法“篡改”了,增加各种广告、流氓软件,篡改你的浏览器主页,甚至给你的电脑植入“病毒”等。
最好的方法当然是你从官方正版网站来下载文件啦。
但有的时候,像一些开源网站,下载文件是很慢很慢的,特别是一些超级大的文件,就不怎么可能在官网慢吞吞的下载(有的时候下到八九十的时候还会异常断开,重新下载)
所以很多时候都是从第三方的站点去下载安装包去安装的,那这样,怎么保证我们下载的包都是正版包?我们在这里推荐两种校验方式,具体要用哪一种,就得看要下载的网站支持哪一种了。
MD5
校验
这里我举个栗子,MySQL
官网下载源码包或其他二进制包的页面,就是使用了MD5
校验的,如图
可以看到,每个文件都有一串MD5:xxxxxxx | Signature
,这个就是校验值了。
具体怎么进行校验呢?
我们可以在命令行中输入命令:
md5Sum 文件名
就可以看到文件计算出来的MD5
散列值了。
然后拿这个值跟官网提供的散列值匹配,如果计算的算法一致,而且计算出来的散列值也一致,就代表没有差别。
但这个文件包当中任何信息一旦修改了,计算出来的散列值就会不一致
Sha256
校验
比如,我们的PHP
官网上的php
源码包下载,就是用的Sha256
散列。
跟MD5
散列计算差不多,可以在命令行中输入命令:
sha256sum 文件名
就可以看到文件计算出来的sha256
散列值了。
也是一样比对就可以知道文件是否有被篡改过了。
如果你觉得这样去对比比较麻烦,还可以结合管道符号进行一些变化。
sha256sum 文件名 | grep 官网提供的散列值
如果看到有输出内容,就代表校验是通过的(有一些系统甚至会把散列值标红,因为默认给grep
命令进行过配置)
比如这样