piapia123
zh

OpenPGP 密钥生成与检查

编码

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

真生成,不是演示:有限域算术、爱德华曲线点运算、SHA-512 与 OpenPGP 包结构全部自带,生成的公钥/私钥块能被 `gpg --import` 接受(自签名与子密钥绑定签名都真算)。生成、解析、拼 gpg 命令三个模式。密码学随机源走 `crypto.getRandomValues`,密钥在你自己的浏览器里产生,一个字节都不会上传 —— 这正是这个工具存在的理由:比起把私钥交给某个网站,这里你至少能把它留在本机。

功能

  • 真生成 Ed25519 主密钥(RFC 8032 官方向量钉住)
  • 可选 X25519 加密子密钥(RFC 7748)与绑定签名
  • 导出的 ASCII armor 可被 gpg --import 接受,公钥私钥都可用
  • 解析模式输出指纹(v4 SHA-1 / v5 SHA-256)、密钥 ID、算法、创建与过期时间
  • 解析 ASCII armor 时校验 CRC24,改过/截断的报文会被指出
  • 拼出 `gpg --quick-generate-key` 命令,含有效期与子密钥提示
  • 支持 Ed25519、X25519、RSA、DSA 等密钥的解析
  • 每行可单独复制,也可复制全部

使用方法

  1. 选模式:生成 / 解析 / 生成 gpg 命令
  2. 生成:填 User ID、选算法与有效期,结果给出公私钥 armor
  3. 解析:把 ASCII armor 或十六进制粘进输入框
  4. 把 armor 存成文件后 `gpg --import` 即可导入

常见问题

生成的私钥有口令吗?
没有。本工具不实现 S2K 加密,所以即便勾了「加口令保护」,给出的仍是不带口令的私钥。请导入后立刻用 `gpg --edit-key <指纹> passwd` 加口令 —— 不带口令的私钥谁拿到都能用。不假装做了,是为了不给你一个虚假的安全感。
为什么解析模式对 v5 密钥支持有限?
指纹算法是区分开的(v4 用 SHA-1,v5 用 SHA-256 且前缀码与长度字段都不同),但 v5 的密钥材料与子包布局尚未完整解析。日常见到的绝大多数密钥仍是 v4。
真的能被 gpg 接受吗?
能。开发时用 gpg 2.4 实测过:导入后自签名有效、可以用它签名并验签、X25519 子密钥的绑定签名也有效并能用来加解密。密钥包、User ID、自签名、子密钥与绑定签名的每个字节都按 OpenPGP 规范拼。
把密钥生成交给网页安全吗?
这个页面全部在本地计算,不发任何请求,也没有服务端。但页面是从网上加载来的,你无法审计它。生成后的密钥会留在屏幕上、剪贴板里、下载文件里 —— 请尽快导入自己的密钥环,别贴进聊天记录。对安全性要求极高的场景,仍建议用本机的 `gpg` 生成。

相关工具