如何使用 SHA256 校验下载的文件

简介:

如何使用 SHA256 校验下载的文件

当你下载了一个 ISO 镜像,特别是从 BitTorrent 网络上很多未知的种子处下载的,通常建议要验证下载镜像的完整性。

对于 Ubuntu 发行版的情况, Canonical 提供了几个供验证使用的验校文件(如 MD5SUM, SHA1SUMS 和 SHA256SUMS)。在这个例子中我们使用 SHA256SUMS。

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


  
  
  1. $ wget http://releases.ubuntu.com/14.10/SHA256SUMS
  2. $ wget http://releases.ubuntu.com/14.10/SHA256SUMS.gpg

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

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


  
  
  1. $ gpg --verify SHA256SUMS.gpg SHA256SUMS


  
  
  1. gpg: Signature made Thu 23 Oct 2014 09:36:00 AM EDT using DSA key ID FBB75451
  2. gpg: Can't check signature: public key not found

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

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


  
  
  1. $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys FBB75451

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


  
  
  1. gpg --verify SHA256SUMS.gpg SHA256SUMS

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

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

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


  
  
  1. $ sha256sum -c <(grep ubuntu-14.10-desktop-amd64.iso SHA256SUMS)


  
  
  1. ubuntu-14.10-desktop-amd64.iso: OK

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

原文发布时间:2014-11-20

本文来自云栖合作伙伴“linux中国”

目录
相关文章
|
Linux
解决办法:更新linux时候提示“由于没有公钥,无法验证下列签名 ***”
解决办法:更新linux时候提示“由于没有公钥,无法验证下列签名 ***”
938 1
|
3月前
|
存储 缓存 算法
大文件 MD5 SHA 校验时间优化之路
【8月更文挑战第12天】处理大文件的MD5与SHA校验时,可通过选择高效算法实现、分块读取处理文件、利用多线程并行处理、采用硬件加速及缓存校验结果等方式优化校验时间。例如,使用性能良好的加密库如`pycryptodome`替代Python的标准`hashlib`库;分块读取文件并逐块计算哈希值,减少内存占用;利用多线程处理不同文件块;若条件允许,使用硬件加速如Intel AES-NI指令集;以及缓存重复校验的文件哈希值避免重算。这些策略可显著提高校验速度和系统效率。
165 1
|
4月前
|
存储 算法 数据安全/隐私保护
基于SHA-256的大文档加密模块设计与实现
基于SHA-256的大文档加密模块设计与实现
|
6月前
|
数据安全/隐私保护
|
算法 Unix Linux
MD5 生成文件校验
MD5 生成文件校验
125 0
|
算法
Qt实现一个重复文件检测小工具(原理:通过md5校验)
Qt实现一个重复文件检测小工具(原理:通过md5校验)
298 0
|
Windows
Windows系统下MD5,SHA1或者SHA256三种校验方式
Windows系统下MD5,SHA1或者SHA256三种校验方式
480 0
|
存储 算法 安全
hmac库:Python密码消息签名
hmac库:Python密码消息签名
146 0
hmac库:Python密码消息签名
|
数据安全/隐私保护
MD5 加密解密 判断密码是否相等 全套实现方式
MD5 加密解密 判断密码是否相等 全套实现方式
294 0
|
数据安全/隐私保护
【小工具】2. 需要对测试用的数据进行MD5加密
【小工具】2. 需要对测试用的数据进行MD5加密