企评社

Язык подписей интерфейса: Русский. Отзывы о компаниях, сообщения форума и описания инструментов пока доступны только на китайском языке.

Генератор ключей 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 не пишется и ни в одном сетевом запросе не мелькает, а перезагрузка его стирает - endpoint загрузки на странице нет вовсе.

Как выбирать между 2048 / 3072 / 4096?

2048 бит отвечает нынешним требованиям безопасности и совместимее всех; 3072 (около 128 бит стойкости) годится для долгой службы; 4096 ещё надёжнее, но подпись и проверка заметно медленнее. Для обычной веба и подписи интерфейсов хватает 2048 или 3072.

Что такое SPKI и PKCS#8?

SPKI везёт открытый ключ, PKCS#8 - закрытый (невзломанная, без шифрования версия). Страница не выдаёт старомодный PKCS#1 закрытым ключом; если принимающий требует PKCS#1, одна команда openssl pkey перельёт одну форму в другую.

Почему на некоторых адресах не генерит?

Браузеры открывают API генерации ключей crypto.subtle только в безопасном контексте (https или localhost); откроешь страницу по http - она покажет подсказку и отключит кнопку генерации.

Похожие инструменты