不信任任何网站,只信哈希
安装包会经过网盘、下载站、别人的手机、公司的代理服务器。这一路上每一环都可能被替换,但文件内容只要动了,SHA256 就一定会变。三步、三条命令,五分钟内就能确认手上的包和官方那个是同一个文件。
为什么这件事值得花五分钟
Kazumi 是开源软件,谁都可以编译打包再发布。这既是它的优点,也是它最容易被利用的地方:一个改过的安装包里加上推广插件、改掉连接地址、塞一个「更新器」,从界面上几乎看不出来。
常见的三种情况:
- 网盘转发。包是从官方下载的,但中间转存时被替换。这类最多,也最难自己发现。
- 下载站二次打包。页面上写着「高速下载」,给的是自带安装器的封装包。
- 同名诱导弹。文件名一模一样,内容是另一份编译产物,来源不明。
哈希校验解决的是最后一道:你手上的文件,和它声称的那个文件,是不是同一串字节。它不能证明软件本身没问题,但能证明它没在中途被人换过。
三步,从粗到细
官方发布只有 GitHub Releases 一处,加上 AUR(Arch 用户仓库)这条发行版渠道。域名对不上,后面两步就不必做了——直接换个地方下。
同一个版本、同一个平台,安装包的字节数应该是固定的。差几 MB 就要警惕——多出来的部分通常就是被塞进去的东西。注意区分 MB 与 MiB,Windows 资源管理器显示的是 MiB。
前面的都对,理论上就没问题了。要彻底确认,就自己算一遍哈希,和基准值逐字符对比。任何一个字符不同,就不是同一个文件。
三个平台,各一条命令
下面假设你下载的是 Windows 版,文件名带着当前版本号。文件名按你实际下载的那个改,不要照抄版本号。
certutil -hashfile Kazumi_windows_2.4.2.msix SHA256
Get-FileHash .\Kazumi_windows_2.4.2.msix -Algorithm SHA256 | Format-List
shasum -a 256 ~/Downloads/Kazumi_macos_2.4.2.dmg
sha256sum Kazumi_linux_2.4.2_amd64.deb
四条命令的输出都是一个 64 位十六进制字符串。大小写不敏感,a 和 A 算同一个值;但空格、换行、多一个字符都不行。macOS 的 shasum 输出是两个空格加文件名,前面那段才是哈希。
基准值从哪儿来
这是整个流程里最容易做错的一步,说清楚三件事:
- 最可靠的做法是自己造基准。从 GitHub Releases 下一次同一个文件(哪怕慢),在本地算一遍哈希,这就是基准。以后从任何渠道拿到的包,跟它比。
- 不要在第三方网站上查哈希。「在线哈希查询」这类站点给出的值来源不明,等于把判断权交给另一个陌生人。
- Release 页面若附了校验值文件,优先用它。项目的构建流程不同,有的会附带一份校验清单,有的不附。没附不等于有问题,用第 1 条的办法自己造。
对不上,三种可能
哈希不一致时别急着下「被投毒」的结论,先按这个顺序排除:
下错平台或架构了
Windows 有 MSIX 和便携版两种,Linux 有 amd64 与 arm64,iOS 的包名里带 no_sign。不同产物的哈希当然不同。下载页那张表按后缀列了每个包的用途,先核对一下你拿到的是哪一种。
下载中断,文件是残的
大小比预期小、或者安装时报「包已损坏」,多半是传输中断。重新下一遍再算。这类情况哈希必然对不上,但文件本身没问题,只是没下完。
文件被替换或二次打包
大小和基准差了几 MB,哈希又对不上,基本可以定性。这时候不要安装——直接删掉,换官方渠道重下。如果你的来源是某个「高速下载」页面,它给的很可能是个下载器而不是安装包本身。
顺手分辨「安装包」和「下载器」
不用算哈希也能看出七八成,看三点就够:
| 官方安装包 | 下载器 / 封装包 | |
|---|---|---|
| 体积 | 几十 MB,与平台相关 | 通常只有几 MB,运行后才开始下主程序 |
| 文件名 | 带平台与版本号,如 Kazumi_windows_2.4.2.msix | 「xx安装器」「xx高速下载」「setup」之类,不带版本号 |
| 运行后 | 直接进入系统安装流程 | 先出现一个带广告的下载界面,或要求选安装位置、捆绑其他软件 |
第二行那条最实用:Kazumi 的官方产物名严格遵循 Kazumi_平台_版本_架构.后缀,名字里必然带着版本号。名字里没有版本号的,基本可以不用看了。
校验通过之后
接下来是安装。各平台卡住的地方不一样:Windows 的 MSIX 会弹签名提示、macOS 会报「已损坏」、鸿蒙要走侧载,这些都在安装指南里按平台写全了。
装完第一次启动会要求你添加规则——安装包里不含任何默认规则,这是设计如此,不是缺文件。为什么这么设计、五种导入方式各适合什么场景,看规则入门。