嘘~ 正在从服务器偷取页面 . . .

文件校验


文件校验

比如在apache 下载的 tomcat 的时候,一般下载长这样:

Core:

或者下载rocketmq

Binary: rocketmq-all-4.7.1-bin-release.zip [PGP] [SHA512]

后面都有对应的PGP签名文件和对应的HASH加密字符串文件。

之所以需要校验是验证文件完整性,防止篡改等非法验证,一般可以通过校验和签名来验证从镜像下载的文件。

1. Hash校验

校验和算法很多;

比如:SHA-1,SHA-256,SHA-512,MD5。

HashWindows OSLinux OSMac比较文件
WindowsLinuxMac
SHA-1certUtil -hashfile file SHA1sha1sum fileshasum -a 1 filefile.sha1
SHA-256certUtil -hashfile file SHA256sha256sum fileshasum -a 256 filefile.sha256
SHA-512certUtil -hashfile file SHA512sha512sum fileshasum -a 512 filefile.sha512
MD5certUtil -hashfile file MD5md5sum filemd5 filefile.md5

Demo:

比如下载 rocketmq-all-4.7.1-bin-release.zip 和对应的SHA512 ,就可以得到rocketmq-all-4.7.1-bin-release.zip(发行版)和apache-tomcat-8.5.60-windows-x64.zip.sha512(hash)两个文件。

rocketmq-all-4.7.1-bin-release.zip: 5DC22C3A 981FDD2A 99BC95C2 EA29C258 227CDB1D
                                    64FC7E54 A83486EE 099EE478 B66E19A4 4BF07577
                                    54039832 D97C4AA0 86FEA4FE 445748C9 861C8AB8
                                    0B611868

进行校验:

certUtil -hashfile  rocketmq-all-4.7.1-bin-release.zip  SHA512

输出结果:

SHA512 的 D:\distributed-tools\rocketmq-all-4.7.1-bin-release.zip 哈希:
5dc22c3a981fdd2a99bc95c2ea29c258227cdb1d64fc7e54a83486ee099ee478b66e19a44bf0757754039832d97c4aa086fea4fe445748c9861c8ab80b611868

可以将这个哈希值和apache-tomcat-8.5.60-windows-x64.zip.sha512 里的哈希值比较一下。

2. 签名校验

签名校验一般需要下载2文件:

  • release 版正常程序文件,如.tar.tar.gz.zip后缀结尾等。
  • release 版对应的签名文件,如asc后缀结尾等。

比如下载 64-bit Windows zip 和对应的 pgp,就可以得到apache-tomcat-8.5.60-windows-x64.zip(发行版)和apache-tomcat-8.5.60-windows-x64.zip.asc(分离的签名)两个文件。

分离签名的内容大概就是一串加密字符串:

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEqcXfTSLpmZjZh1pREMAcWi9gWecFAl+tcrMACgkQEMAcWi9g
WefpmBAAqzmWd0m0qeqziRILu6xsv3aqROlyQRGhRFbyaUZ94tPbZjufZ/XCb7wp
nFbPo4zlru1LjN0nqpj8rtCVNNcLmefKz0nIsxMx4dMDR5nkHeyCCrAfBeELrIKA
z/0OH8QjLYGfa4vLPTt+8uzAZEsnE8liWWrf7nuWc8gQZqc3OAyEpWtPv2j/Hy+h
c2CggthI8/mIf+x2vRaWHXWQCiqmhunm7fDmrcPfujwz/0ub3xXqhbeahj7I/f60
z2FxslfUQmDg4OpwINyx8kipRIR/3MS/Jjf4OUmZ8EKst7MdIAomd9qs8B/2DUgH
xq9rT+nrhKu2zTpBG5KLLc0jHafl/rf3ndlWn2+vAl2EtdlVmVDU+feniwmB+vez
1/1FEg2aNZCds73RLrlRp+m9SpBP66TEgLd6iK+OMEMCfBBNcjwNNsdV4wYLJzZ+
Gep9frYgH19bPMrtH/9rnYdLivezcVN9Aumy2wsBlKhCF87fIxWzwFbl0m2Ewu9Z
l7EaQzawSRRcerxUrZEt/wSeke6NLo3z/1pBJgcj4CtvRjx+L5vEACdAczk0xbTs
HKRJSXLimzD9zJYHWBXruJ/Y4ePW6WsRPc7mwLOP/dAxglCX5tJz9XBD+zmHHlym
C8lmhLIzrjhKcoldqwFmMNb6+1daInBWs0C59cu48h/ut0zEapQ=
=5nOe
-----END PGP SIGNATURE-----

签名校验时,需要同时指定分离的签名和发布文件。

gpg –verify apache-tomcat-8.5.60-windows-x64.zip.asc apache-tomcat-8.5.60-windows-x64.zip

如果出现:public key not found

就需要获取key,会提示对应的加密KEY的ID

gpg –keyserver pgpkeys.mit.edu –recv-key KEY_ID

也可以先验证KEY_ID的真实性:

gpg --fingerprint KEY_ID

会出现对应的KEY_ID 和对应的开发人员信息,比如apache的可以在网站找到对应的成员,就说明是开发者的签名。

再次重新验证:

gpg –verify apache-tomcat-8.5.60-windows-x64.zip.asc apache-tomcat-8.5.60-windows-x64.zip


文章作者: Small-Rose /张小菜
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明来源 Small-Rose /张小菜 !
评论
  目录