关于 RSA 密钥对生成器
RSA 是最经典的非对称加密算法,一对密钥中公钥用于加密或验签、私钥用于解密或签名,广泛用于 HTTPS 证书、SSH、JWT 的 RS256 等场景。本工具用浏览器的 Web Crypto API 在本地生成 RSA 公私钥对,可选 2048/3072/4096 位长度,并以标准 PEM 格式(公钥 SPKI、私钥 PKCS#8)输出,方便直接粘贴进配置或代码。私钥在你的设备上生成后从不上传,但它一旦泄露等于身份被冒用,生产环境的密钥仍建议在受控服务器上离线生成与妥善保管。 建议在日常开发中收藏本工具,需要生成密钥或哈希值时即可快速打开使用。所有计算均在浏览器本地完成,敏感数据不会上传,可放心操作。
使用场景
- 生成测试密钥对 — 为本地开发的签名/验签流程快速产出一对 RSA PEM 密钥。
- 配置 JWT RS256 — 生成私钥签发、公钥验证 JWT 所需的密钥对,调试鉴权服务。
- 学习非对称加密 — 对照公钥加密、私钥解密的过程理解 RSA 的工作原理。
- 准备 JWKS — 获得公钥后转换成 JWK 用于搭建 OIDC 的公钥端点。
- 验证密钥格式 — 检查现有 PEM 是否为合法的 SPKI/PKCS#8 结构。
常见问题
该选 2048 还是 4096 位?
2048 位目前仍被认为安全且性能更好,是多数场景的默认值;对长期保密要求高的可选 3072/4096,但密钥越长签名验签越慢,需权衡。
SPKI 和 PKCS#8 是什么?
它们是密钥的编码格式。本工具公钥用 SPKI(对应 PEM 的 BEGIN PUBLIC KEY),私钥用 PKCS#8(BEGIN PRIVATE KEY),是现代库通用的标准格式。
RSA 能直接加密大文件吗?
不能。RSA 单次只能加密小于密钥长度的数据。实际做法是用 RSA 加密一个随机的 AES 密钥,再用 AES 加密大数据,即"混合加密"。
公钥和私钥能互换用途吗?
不能随意互换。公钥用于加密和验签,私钥用于解密和签名。公钥可公开分发,私钥必须严格保密,泄露即丧失全部安全性。
在浏览器生成生产密钥安全吗?
crypto.subtle 的随机性本身是可靠的,但浏览器环境可能存在扩展或脚本风险。关键生产密钥建议在隔离的服务器上生成,本工具更适合开发与测试。
有浏览器兼容性要求吗?
本工具兼容所有现代浏览器(Chrome、Firefox、Edge、Safari),无需安装任何插件或扩展。
可以离线使用吗?
首次加载后,部分功能在离线状态下仍可使用。页面资源加载后,核心逻辑完全在浏览器本地运行,不依赖网络。