怎么计算 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。
下载到一半中断的文件,算出来的值会一样吗?
不会。只有完整、未改动的文件才能算出和官方一致的值,这也是核对的意义。
下一步
本页内容依据各项目的官方文档和源码整理 · 有错误?提交反馈