如何使用 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中国”

时间: 2024-11-10 05:33:46

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

线程-java调用sqlplus下载数据库文件到本地后,如果用java关闭此进程,大神戳进来

问题描述 java调用sqlplus下载数据库文件到本地后,如果用java关闭此进程,大神戳进来 1.用java调用sqlplus,将指定的存储过程下载到本地作为文本文件2.在java读取此本地文件做处理,处理后写1个新的文本文件在本地我将上面2个步骤用2个进程thread1,thread2因为步骤2必须等步骤1结束才能执行,所以我调用thread1.start()thread1.join()以及thread2.start().但是运行结果是每次都只执行出了步骤1,步骤2执行不出来.考虑是否在步

PHP下载远程文件的3种方法以及性能考虑

今天在做导出Excel的时候,总是要测试导出的Excel文件,频繁的下载和打开,很麻烦   就想着写段代码一气呵成  服务端导出Excel==>下载Excel文件到本地==>并打开的操作.   这里摘出PHP下载远端文件的方案,以备忘.其中第3种方法考虑到文件过大时的性能问题.           3种方案:   -rw-rw-r-- 1 liuyuan liuyuan 470 Feb 20 18:12 test1_fopen.php -rw-rw-r-- 1 liuyuan liuyuan

PHP下载CSS文件中的图片的代码

     作为一个资深并且专业的扒皮人员,在我从初三开始投入伟大的互联网中到现在积累了丰富的扒皮经验.我相信每个做web的程序员也都会有类似的经历.     在扒皮过程中,必不可少的需要下载样式文件中的图片.碰到比较庞大的样式文件,其中可能会有上百个需要下载的图片,那么使用下面这段小代码是最为合适的了. < ?php /* More & Original PHP Framwork Copyright (c) 2007 - 2008 IsMole Inc. Author: kimi Docum

PHP下载CSS文件中的图片

作为一个资深并且专业的扒皮人员,在我从初三开始投入伟大的互联网中到现在积累了丰富的扒皮经验.我相信每个做web的程序员也都会有类似的经历.在扒皮过程中,必不可少的需要下载样式文件中的图片.碰到比较庞大的样式文件,其中可能会有上百个需要下载的图片,那么使用下面这段小代码是最为合适的了. 作为一个资深并且专业的扒皮人员,在我从初三开始投入伟大的互联网中到现在积累了丰富的扒皮经验.我相信每个做web的程序员也都会有类似的经历. 在扒皮过程中,必不可少的需要下载样式文件中的图片.碰到比较庞大的样式文件,

C# 文件操作(上传 下载 删除 文件列表...)

上传|下载 using System.IO; 1.文件上传----------如下要点:HTML部分:<form id="form1" runat="server" method="post" enctype="multipart/form-data"><input id="FileUpLoad" type="file" runat="server"

ASP.Net下载大文件的实现方法

这篇文章主要介绍了ASP.Net下载大文件的实现方法,较为详细的分析了实现大文件下载的思路及具体注意事项,需要的朋友可以参考下 本文实例讲述了ASP.Net下载大文件的实现方法.分享给大家供大家参考.具体分析如下: 当我们的网站需要支持下载大文件时,如果不做控制可能会导致用户在访问下载页面时发生无响应,使得浏览器崩溃.可以参考如下代码来避免这个问题. 关于此代码的几点说明: 1. 将数据分成较小的部分,然后将其移动到输出流以供下载,从而获取这些数据. 2. 根据下载的文件类型来指定 Respon

手机360浏览器下载的文件在哪里?

  手机360浏览器下载的文件在哪里? 方法一:在手机360浏览器中查看 1.打开360浏览器安卓版,点击底栏[菜单]; 2.选择[下载]; 3.即可查看到下载的文件. 方法二:在手机文件管理中查看 1.打开手机的[文件管理/我的文件]; 2.找到[360Browser]; 3.打开[download]; 4.即可看到已下载的文件.

PHP 下载远程文件类(支持断点续传)

PHP 下载远程文件类,支持断点续传下载,代码内含有具体的调用说明.程序主要是使用 HTTP 协议下载文件,HTTP1.1协议必须指定文档结束后关闭链接,否则读取文档时无法使用feof判断结束,可以有两种使用方法,具体请下载查看源码. <?php /** * 下载远程文件类支持断点续传 */ class HttpDownload { private $m_url = ""; private $m_urlpath = ""; private $m_scheme

uc浏览器下载的文件在哪里?

  uc浏览器下载的文件在哪里? 1.打开UC浏览器,主菜单→下载/应用→UC网盘,离线下载即位于右上角. 2.点击进入离线下载,点击"新建离线任务",输入http.迅雷.ftp.电驴ed2k等资源的下载地址,点击[确定]即可.链接地址可以在电脑找好之后通过电脑上的QQ.微信发送到手机端的QQ.微信上. UC浏览器下载的文件在哪里? 1.打开UC浏览器,点击属性按钮(最中间的虚拟键). 2.找到"下载/应用",点击打开. 3.找到"下载管理"下面