RSA 鍵ペア生成
2048 / 3072 / 4096 ビット · SPKI 公開鍵 + PKCS#8 秘密鍵 · JWK と法名指紋付き
私钥只存在于当前页面内存中:不写本地存储、不出现在任何网络请求里,刷新页面即消失。请妥善保管你复制/下载的内容。
—(对同一密钥对,指纹相同 = 同一把公钥,可用于核对)为什么私钥可以"只在你浏览器里"
密钥生成是纯数学运算。RSA 密钥对的生成只需要随机大数与模幂运算,这些运算现代浏览器的 Web Crypto 接口(背后常是操作系统/硬件的加密实现)都能直接完成。生成 2048 位密钥通常不到一秒,3072 / 4096 位也就多等几百毫秒——根本不需要把任何东西交给服务器。这也意味着:你的私钥从头到尾没有离开过这台设备,不存在"被服务器留存"的可能。
SPKI 与 PKCS#8 是两种标准容器。公钥按 SPKI(Subject Public Key Info)编码、私钥按 PKCS#8 编码,外面都包上 PEM 的 base64 与 BEGIN/END 头。这是目前最通用的两种格式:Nginx 的证书链、JWT 的 RS256 签名、OpenSSL 命令行都直接认。老式的 PKCS#1 私钥(BEGIN RSA PRIVATE KEY)本页不输出,需要时用 openssl pkey 转换即可。
模数指纹用来核对"是不是同一把公钥"。两把公钥是否相同,直接比文本容易看花眼;把公钥的模数(n)做 SHA-256 得到的短指纹则稳定可比。你在不同工具里生成或导入同一把公钥时,指纹一致就说明是同一条。
よくある質問
使えます。ブラウザ内蔵の Web Crypto(RSASSA-PKCS1-v1_5 + SHA-256)で生成しており、公開鍵は SPKI、秘密鍵は PKCS#8 で、どちらも標準の PEM テキスト——Nginx、JWT 署名、OpenSSL など場面にそのまま使えて、受け取った後に openssl pkey で再確認できます。
されません。生成もエクスポートも表示も全部あなたのブラウザの中——秘密鍵は現在のページのメモリの中にだけあり、localStorage に書かず、どんなネットワークリクエストにも現れず、ページ更新で消えます;このページにはアップロード口そのものがありません。
2048 ビットは現行のセキュリティ要求を満たし互換性が最良;3072 ビット(約 128 ビット強度)は長期利用向き;4096 ビットはより安心ですが署名・検証が明らかに遅くなります。通常の Web と API 署名なら 2048 か 3072 で十分です。
SPKI は公開鍵を、PKCS#8 は秘密鍵(未暗号版)を収めます。本ページは旧式の PKCS#1 秘密鍵を出力しません;受け取る側が PKCS#1 を要求したら、openssl pkey 一コマンドで両形式を変換できます。
ブラウザはセキュリティ上下文(https か localhost)でのみ crypto.subtle の鍵生成 API を開放します;もし http で本ページを開くと、案内表示を出して生成ボタンを無効にします。