计算你手中文件的哈希
在 Windows 上,在 PowerShell 中运行 Get-FileHash。在 Linux 和 macOS 上,运行 sha256sum 或 shasum -a 256。将输出与 SHA256SUMS.txt 中对应的行进行比较。
SHA-256 校验和:每次发布都在安装包旁附带 SHA256SUMS.txt。哈希由发布流水线根据它收集的确切文件计算,收集步骤会拒绝任何不是来自当前构建的产物——半途失败的构建无法悄悄复用旧安装包。
更新器签名:Tauri 更新器捆绑包使用 minisign 签名,公钥内嵌于应用本身。如果更新器提供的文件没有正确签名,应用会拒绝它。
发布签名:由标签门禁的发布流水线以 cosign 的 Sigstore 无密钥模式为每个已发布的产物签名,并绑定到工作流运行的 OIDC 身份。流水线还强制执行签名门禁:除非产物被验证为已签名,否则 Windows 和 macOS 发布将被阻止发布。
一个诚实的提醒:在代码签名证书存在之前,你自行构建或从 CI 下载的 Windows 安装包没有 Authenticode 签名。签名门禁会把它们挡在正式发布之外;如果你通过构建取得了一份文件,请在运行前验证其 SHA-256 哈希。
在 Windows 上,在 PowerShell 中运行 Get-FileHash。在 Linux 和 macOS 上,运行 sha256sum 或 shasum -a 256。将输出与 SHA256SUMS.txt 中对应的行进行比较。
校验和随其对应的发布一同公布。如果你从官方发布下载 SHA256SUMS.txt,并且你的安装包哈希与之一致,那么这个文件就是流水线产出的那个文件。
应用内更新会对照编译进应用的 minisign 公钥进行校验。你无需手动信任任何下载来的更新文件。
一个没有签名、也没有下载信誉的可执行文件,正是 Windows SmartScreen 和杀毒软件启发式规则会警告的那类文件——这是没有证书的代价,而不是恶意软件的证据。请验证 SHA-256 哈希;如果你的杀毒软件仍然标记一个与已公布校验和一致的哈希,请向其厂商报告误报。仓库中的构建工作流注释公开记录了这一局限。
每个产物在 SHA256SUMS.txt 中逐项公布;收集器会拒绝早于记录的构建时间戳的安装包。
更新器捆绑包在构建时签名;验证密钥随应用一同发布,latest.json 指向该签名。
已发布的产物通过 Sigstore 无密钥方式签名,绑定到该次发布运行的 GitHub Actions OIDC 身份。
这是 SmartScreen 对未签名文件的反应,不是病毒报告。请对照 SHA256SUMS.txt 验证 SHA-256 哈希。如果一致,该文件就是流水线的产出;一旦发布带上签名证书,这条警告将永久消失。
在每次发布中与安装包放在一起,也在下载页面的验证板块中。只通过聊天消息传来的校验和不算验证——请使用公开发布的那份。
从源代码构建:仓库可以用已写明的 npm 和 cargo 命令进行可复现构建,本地发布脚本会产出同样的产物命名规则和各自的校验和。