密钥对生成
Key Pair Generator
生成 RSA、ECDSA 或 Ed25519 密钥对,导出为 PEM、JWK 或 OpenSSH。
在浏览器里生成公钥/私钥对,并导出为 OpenSSH、PEM(SPKI 和 PKCS#8)或 JWK。Ed25519、ECDSA P-256/P-384 和 RSA 2048/3072/4096,全部由浏览器自己的 WebCrypto 生成。
小、快、现代。2014 年起就是 SSH 的默认值。
会出现在 OpenSSH 公钥那一行的末尾。
crypto.subtle.generateKey)在本标签页里生成,不会离开这里——不传输、不记录、不存储。输出格式在本项目的测试里与 OpenSSH 本身逐一核对过。条件允许的话,请在将要保管私钥的那台机器上生成;在浏览器标签页里存在过的密钥,就是在那个标签页的内存里存在过。怎么用
选算法
任何新东西都用 Ed25519——小、快,而且从 2014 年起就是 SSH 的默认。对面有东西要求的话再用 ECDSA 或 RSA。
生成并选格式
OpenSSH 给你一行 `authorized_keys` 和一个 `openssh-key-v1` 私钥;PEM 给 SPKI 和 PKCS#8;JWK 给 JOSE 库用。同一把密钥,三种写法。
保存之后加口令
私钥是未加密导出的。在本地:`ssh-keygen -p -f id_key` 加口令,`chmod 600` 让 ssh 肯用这个文件。
常见问题
在浏览器里生成私钥安全吗?
密钥从不离开标签页——WebCrypto 生成它,什么都不传输、不记录、不存储。但一把在浏览器标签页里存在过的密钥,就在那个标签页的内存里存在过,那比一个 shell 的暴露面更大。守护生产环境的密钥,请在将要持有它的机器上生成。
为什么 Ed25519 有时不见了?
因为那个浏览器的 WebCrypto 没有实现它。支持来得晚而且参差不齐;页面加载时会检查,并把选项藏起来,而不是提供一个会失败的东西。ECDSA P-256 是最接近的广泛支持的替代。
RSA 2048 还是 4096?
2048 仍然够用,生成和使用都快得多。4096 买的是应对一个没人能估量的未来的余量,代价是握手时间实实在在地变长。如果你选 RSA 是为了兼容,2048 通常本来就是对面想要的。
指纹是从哪里来的?
它是 OpenSSH 格式公钥的 SHA-256 指纹——和 `ssh-keygen -lf` 打印的是同一个字符串,所以两者可以直接比对。
可以从这些接进来
JWT 解码
JWT Decoder
解出头部和载荷,按本地时间显示过期时刻,并用你给的密钥验证签名。
JWKS 签名验证
JWKS Verifier
拉取 JWKS 端点,按 kid 选出对应的密钥,验证令牌的签名和标准声明。
SSH 密钥生成
SSH Key Generator
生成带注释的 OpenSSH 密钥对,并显示指纹。私钥不带口令导出,需要的话用 ssh-keygen -p 自己加。
证书解码
Certificate Decoder
解析 PEM 或 DER 格式的证书和 CSR,显示主体、SAN、有效期、密钥用途和证书链线索。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
证书解码
Certificate Decoder
解析 PEM 或 DER 格式的证书和 CSR,显示主体、SAN、有效期、密钥用途和证书链线索。
CSR 证书请求生成
CSR Generator
按主体字段和 SAN 条目生成证书签名请求以及配套的私钥。
JWKS 签名验证
JWKS Verifier
拉取 JWKS 端点,按 kid 选出对应的密钥,验证令牌的签名和标准声明。
SSH 密钥生成
SSH Key Generator
生成带注释的 OpenSSH 密钥对,并显示指纹。私钥不带口令导出,需要的话用 ssh-keygen -p 自己加。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。