clashv

怎么计算 SHA256

用系统自带命令计算下载文件的 SHA256:Windows 用 certutil 或 Get-FileHash,macOS 用 shasum,Linux 用 sha256sum,再和官方发布页公布的值对比。

本篇概要
内容
第 1 步:找到官方公布的值、第 2 步:算出本地文件的值、第 3 步:对比、有校验文件时,一条命令核对
预计阅读
约 3 分钟
适用
Windows、macOS、Linux

SHA256 是一串 64 位的十六进制字符,可以看成文件的“指纹”:文件哪怕改动了一个字节,算出来的值也会完全不同。下载安装包后算一下它的 SHA256,和官方公布的值对比,一致就说明你拿到的文件和官方发布的是同一个。

第 1 步:找到官方公布的值

只认官方发布页上的值,不要用第三方网站转述的:

来源 在哪里
GitHub 发布页 GitHub 会为每个上传的发布文件自动计算 SHA256,显示在发布页每个文件旁边(GitHub 官方说明(在新窗口打开))
Clash Party 每个安装包附一个同名的 .sha256 文件
FlClash 发布页附一个 SHA256SUMS 文件,列出全部安装包的值

GitHub 显示的值是 GitHub 在文件上传时算的,它能证明你下到的文件和发布页上的一致;发布页本身是不是官方的,要靠认准官方仓库地址。各客户端的官方地址见 全部客户端官网地址。

第 2 步:算出本地文件的值

Windows

从开始菜单打开 PowerShell,运行(安装包在“下载”文件夹时,把文件名换成你的):

Get-FileHash "$HOME\Downloads\安装包文件名.exe"

Get-FileHash 不指定 -Algorithm 时用的就是 SHA256(微软官方文档(在新窗口打开))。输出里 Hash 一栏就是结果。

也可以在命令提示符里用 certutil,要写明算法:

certutil -hashfile "%USERPROFILE%\Downloads\安装包文件名.exe" SHA256

macOS

打开“终端”,运行:

shasum -a 256 ~/Downloads/安装包文件名.dmg

-a 256 表示用 SHA-256。shasum 不写 -a 时默认算的是 SHA-1,所以这个参数不能省(shasum 官方文档(在新窗口打开))。

Linux

sha256sum 安装包文件名.deb

sha256sum 来自 GNU coreutils,大多数发行版都自带。

第 3 步:对比

把算出来的值和官方公布的值逐字对比。注意:

  • 字母大小写不同不影响,例如 PowerShell 输出的是大写字母,字符一样就行。
  • 只看开头几位不够,最好整串复制到记事本里上下对齐比较。

一致:文件完好,可以安装。不一致:不要安装,删掉后从官方发布页重新下载;再不一致,确认你下载的是不是官方仓库。

有校验文件时,一条命令核对

如果官方提供了 SHA256SUMS 这类校验文件,并且它和安装包在同一个文件夹,Linux 上可以直接:

sha256sum -c --ignore-missing SHA256SUMS

-c 会读取文件里的值逐个核对,--ignore-missing 跳过你没下载的那些文件。结果显示 OK 就是一致。

常见问题

官方没有公布 SHA256 怎么办?

先看 GitHub 发布页每个文件旁边有没有显示 SHA256。没有的话,至少要确认下载链接来自官方仓库的发布页,不要用网盘、“高速下载”等第三方来源。

MD5、SHA1 也能用吗?

微软的文档说明 MD5 和 SHA1 已不再被认为是安全的,只适合做简单的变化检查。核对安装包请用 SHA256。

下载到一半中断的文件,算出来的值会一样吗?

不会。只有完整、未改动的文件才能算出和官方一致的值,这也是核对的意义。

下一步

本页内容依据各项目的官方文档和源码整理 · 有错误?提交反馈