Linux文件完整性验证

在Linux环境下载文件,往往会校验文件的完整性和安全性,即校验文件的hash。常用的hash算法有MD5SHA1SHA256SHA512。Linux操作系统操作了方便的校验程序。

以下以sha256校验为例,展示生成sha256校验文件及文件完整性校验的过程。

生成sha256校验信息

$ sha256sum file.name 

示例

$ sha256sum go1.13.1.linux-amd64.tar.gz 
94f874037b82ea5353f4061e543681a0e79657f787437974214629af8407d124  go1.13.1.linux-amd64.tar.gz

也可以将校验信息输出到文件

$ sha256sum go1.13.1.linux-amd64.tar.gz > SHA256SUM

对目录下的所有文件生成校验信息

$ ls | grep -v "SHA256SUM" | xargs sha256sum >> SHA256SUM
$ cat SHA256SUM 
94f874037b82ea5353f4061e543681a0e79657f787437974214629af8407d124  go1.13.1.linux-amd64.tar.gz
68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856  go1.13.linux-amd64.tar.gz

验证文件完整性

$ sha256sum -c --ignore-missing SHA256SUM 
go1.13.1.linux-amd64.tar.gz: 成功
go1.13.linux-amd64.tar.gz: 成功

-c选项表示从文件中读取SHA256的校验值并予以检查。--ignore-missing表示忽略不存在的文件。