文件签名:签名与验证
验证和创建文件签名:OpenSSH ssh-keygen -Y、minisign 和 OpenSSL,支持 PEM、OpenSSH 或 JWK 格式的 Ed25519、ECDSA P-256/P-384 和 RSA 密钥。文件和密钥不会离开浏览器。
输入内容和文件始终留在浏览器中
验证签名
将文件拖放到此处
或从您的设备选择文件
SSH 签名(-----BEGIN SSH SIGNATURE-----)、.minisig 文件,或 base64、hex 格式及二进制 .sig 文件形式的原始签名。
PEM 公钥或证书、OpenSSH .pub、authorized_keys 或 allowed_signers 行、JWK/JWKS,或 minisign 公钥。
仅用于 SSH 签名:ssh-keygen 的 -n 值(file、git 等)。
OpenSSH、PEM(PKCS#8、加密的 PKCS#8、EC 或 RSA)或带有 “d” 的 JWK。密钥只留在此标签页中,不会被保存。
仅用于加密的密钥。
RSA 填充用于 RSA 密钥,ECDSA 编码用于 ECDSA 密钥。Ed25519 直接对文件本身签名(最大 128 MiB),并忽略哈希。
验证结果或新签名将显示在这里。
本页内容
文件签名工具可为任意大小的文件验证和创建分离签名:ssh-keygen -Y 生成的 OpenSSH 签名、minisign 的 .minisig 文件,以及使用 Ed25519、ECDSA P-256/P-384 和 RSA 密钥的 OpenSSL 原始签名。文件在浏览器中以 1 MiB 分块计算哈希;文件、密钥和密码短语都不会上传。
详细功能
验证 用于对照签名检查下载的发布包、备份或文档。拖入文件,粘贴 签名 或使用 加载签名文件,并提供 公钥。格式会自动识别:
- OpenSSH 签名(
ssh-keygen -Y sign,也用于 Git 提交和标签):密钥可以是.pub文件、authorized_keys行或allowed_signers文件——匹配的行会显示签名者,并遵守其namespaces=限制。命名空间 必须与签名时使用的一致(通常为file)。不提供密钥时,工具仍会用签名自带的密钥校验,并显示其指纹。 - minisign
.minisig(预哈希 BLAKE2b 和旧版):会检查密钥 ID 和受信任注释,伪造的注释会被报告。 - 来自
openssl dgst -sign或openssl pkeyutl -rawin的 原始签名:二进制、base64 或 hex;ECDSA 为 DER 或 r‖s;RSA 为 PKCS#1 v1.5 或 PSS;SHA-256/384/512。密钥可以是 PEM(SPKI 或 PKCS#1)、X.509 证书、OpenSSH 行或 JWK。
签名 使用你的 私钥 创建签名:OpenSSH、PEM(PKCS#8、加密的 PKCS#8、EC 或 RSA)或 JWK,加密的密钥需填写 密码短语。可选择 SSH 签名(ssh-keygen -Y)——可由 ssh-keygen -Y verify 读取——或 原始签名(OpenSSL),并设置 哈希、RSA 填充 和 ECDSA 编码。结果包括签名、密钥指纹、公钥,以及可直接用 ssh-keygen 或 openssl 验证的命令。
实用示例
检查下载的发布包:拖入 tool-1.4.tar.gz,加载 tool-1.4.tar.gz.sig,粘贴项目的 allowed_signers——结果显示 签名有效 以及签名者 [email protected]。
minisign:拖入压缩包,加载其 .minisig,粘贴项目页面上的 RW… 公钥;会显示包含文件名和时间戳的受信任注释。
OpenSSL:用 public.pem 验证 openssl dgst -sha256 -sign key.pem -out data.sig data.bin 生成的签名;哈希和填充会自动识别。
为同事签名:加载你的 id_ed25519,保留 SSH 签名(ssh-keygen -Y) 和命名空间 file,点击 签名文件,然后把 .sig 连同 allowed_signers 行一起发送。
如何使用此工具
选择文件
将文件拖到 将文件拖放到此处,或点击 选择文件。大小不限:文件按分块计算哈希。
选择模式
选择 验证 检查签名,或选择 签名 创建签名。
提供签名和密钥
验证 时,粘贴 签名 和 公钥;对于 SSH 签名,请检查 命名空间。签名 时,粘贴 私钥,若已加密则输入 密码短语,并选择 签名格式。
运行
点击 验证签名 或 签名文件。进度显示已计算哈希的字节数;取消 可停止。
查看结果
绿色或红色消息给出结论,下方显示密钥指纹、方案、哈希和签名者。签名后,可使用 下载 .sig 或复制签名。
提示和最佳实践
- 没有受信任密钥时,有效签名只能证明完整性,而不能证明签名者身份:务必比对指纹或提供签名者的密钥。
git使用命名空间git签名提交,普通的ssh-keygen -Y sign通常使用file。- OpenSSL 生成的 RSA-PSS 签名会同时按摘要长度和最大盐长进行校验,因此新旧版本的 OpenSSL 签名都能验证。
- Ed25519 原始签名对整个文件签名而非哈希:此处限制为 128 MiB,而 SSH 签名没有大小限制。
- 私钥只在此标签页中使用,不会被保存;不过仍建议使用专用的签名密钥,而不是日常使用的 SSH 密钥。