欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

在Linux系统中使用SHA256来校验下载的文件的方法

程序员文章站 2022-03-12 09:51:08
这篇文章主要介绍了在Linux系统中使用SHA256来校验下载的文件的方法,文中的示例基于Ubuntu系统演示其通过校验密钥来检查文件的完整性,需要的朋友可以参考下... 15-06-17...

当你下载了一个 iso 镜像,特别是从 bittorrent 网络上很多未知的种子处下载的,通常建议要验证下载镜像的完整性。
对于 ubuntu 发行版的情况, canonical 提供了几个供验证使用的验校文件(如 md5sum, sha1sums 和 sha256sums)。在这个例子中我们使用 sha256sums。
在Linux系统中使用SHA256来校验下载的文件的方法

首先,下载下面两个文件。

   

复制代码
代码如下:
$ wget http://releases.ubuntu.com/14.10/sha256sums
$ wget http://releases.ubuntu.com/14.10/sha256sums.gpg

第一个文件是 iso 镜像的 sha256 验校文件,而第二个文件(*.gpg)是验校文件的签名。第二个文件的目的是验证验校文件本身的有效性。

我们通过运行下面的命令来验证 sha256sums 文件的有效性。

   

复制代码
代码如下:
$ gpg --verify sha256sums.gpg sha256sums </p> <p> gpg: signature made thu 23 oct 2014 09:36:00 am edt using dsa key id fbb75451
gpg: can't check signature: public key not found

如果你得到上面的错误信息,是因为你还没有导入生成这个签名的公共密钥。因此我们现在导入需要的公共密钥。

这样做之前,你需要知道公共密钥的 “key id”,而这在上面的 gpg 命令的输出中有显示。在这个例子中,密钥 id 时 “fbb75451”。运行下面的命令来从官方 ubuntu 密钥服务器导入公共密钥。

   

复制代码
代码如下:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys fbb75451
 
在Linux系统中使用SHA256来校验下载的文件的方法

    既然公共密钥已经被导入,我们可以继续并重新运行之前的命令来验证签名。

   

复制代码
代码如下:
gpg --verify sha256sums.gpg sha256sums

在Linux系统中使用SHA256来校验下载的文件的方法

    这次你没有看到 “public key not found” 的错误信息。如果 sha256sums 文件时有效的,你会看到 “good signature from ” 的信息。注意到你还看到一个 “this key is not certified with a trusted signature” 的警告信息。基本上这个警告信息是告诉你对导入的公共密钥没有明确信任。要避免这个警告,你可以选择指定完全信任导入的公共密钥,但你应该只有在通过其他方式审查了这个密钥之后才这样做。否则的话,你可以暂时忽略这个警告。

在验证了 sha256sums 文件的完整性后,最后一个步骤是比较已下载 iso 文件的 sha256 验校和和 sha256sums 文件中对应的验校值。你可以使用 sha256sum 命令行工具来完成这个步骤。

为方便起见,下面一行命令比较 sha256 验校和并报告结果。

   

复制代码
代码如下:
$ sha256sum -c <(grep ubuntu-14.10-desktop-amd64.iso sha256sums) </p> <p> ubuntu-14.10-desktop-amd64.iso: ok

如果你看到了上面的输出信息,这表明两个验校值相匹配。这样已下载 iso 镜像的完整性就被成功的验证了。