⑴原理: 原理同MD一样,都是通过对文件进行HASH求值,比对文件发布者发布的HASH值,通过是否相等判断文件是否被篡改
⑵说明: SHA HASH求值方法可以说是MD的一个升级版本(SHA 位,MD 位,在HASH求值方面,MD退出的舞台将有SHA占据。SHA家族有五个算法:SHA-、SHA-、SHA-、SHA-,和SHA-,后四种有时候称为SHA
⑶使用: CentOS有SHA的命令: shasum
⑷# 直接输出SHA Hash
⑸$ shasum your-downloaded-file-name
⑹dbdfa your-downloaded-file-name《/p》 《p》# 将SHA Hash值保存到文件中
⑺$ shasum your-downloaded-file-name 》 sha-hash.txt
⑻# 显示文件内容
⑼$ cat sha-hash.txt
⑽dbdfa your-downloaded-file-name《/p》 《p》#通过sha-hash.txt来校验我们下载的文件your-downloaded-file-name
⑾# 注意,文件必须要要通过txt文件中的路径知道哦
⑿$ shasum -c sha-hash.txt
⒀your-downloaded-file-name: OK
⒁这个SHA和MD基本一致,需要补充说明下的是,在使用 mdsum 也好,还是 shasum 也罢,校验文件的时候,务必要让系统能够根据文件中提供的路径找到文件,如果文件找不到,是没有办法进行校验的。
⒂如果是做多个文件的Hash校验,可以通过一个文件保存多个文件的Hash值即可。
⒃原理:使用非对称加密,程序生成唯一的密钥对(公钥和私钥:Public Key和Private Key/Secret Key。操作方法如下:
⒄.发布者通过用生成的密钥对中的私钥对要发布的文件进行签名,得到签名文件(sign;
⒅.发布者将密钥对中的公钥发布到公钥服务器;
⒆.发布者将文件和用私钥生成的签名一起发布;
⒇.验证者下载发布者发布的文件和签名;
⒈.使用PGP的程序获取的发布者第二步发布的公钥;
⒉.使用公钥校验文件签名
⒊说明:签名算法中,密钥的用处分别是:公钥用于加密信息和验证,私钥用于解密和签名。私钥掌握在信息发布方,公钥可以任意分发。信息发布方用密钥进行对信息进行签名,接收方在获取公钥后,可以用公钥对发布方发布的信息+签名进行验证。如果验证失败则认为信息被篡改。在网络中,我们经常碰到的HTTPS协议,使用了同样的机制。
⒋使用:由于PGP是商业应用程序,在CentOS/Linux中,具有同类功能的是GPG(也就是:GnuPG,同样遵守OpenPGP数据加密标准( RFC ,没有安装可以用 yum install gnupg 安装,命令是: gpg
⒌# 由于过程相对复杂,并且在实际使用中,校验用的比较多,因此这里只介绍文件的校验过程。
⒍# 在获得文件和签名时,我们先用gpg校验签名,此时文件必须存在
⒎$ gpg --verify downloaded-file-sign.asc