Как пользоваться
- Выберите Алгоритм: RSA-OAEP для шифрования или один из алгоритмов подписи.
- Выберите Размер ключа. 2048 бит — обычный минимум; 4096 бит создаются дольше.
- Нажмите Создать пару ключей, затем скопируйте или скачайте четыре поля.
- Храните закрытый ключ в менеджере секретов и никогда не вставляйте его на сайт, в чат или в файл, который могут прочитать другие.
Что содержит пара ключей
Пара ключей RSA имеет открытую часть, которую может знать любой, и закрытую часть, которую хранит только её владелец. Закрытый ключ записан в формате PKCS#8 (RFC 5958), открытый — в формате SubjectPublicKeyInfo (RFC 5280). Оба обёрнуты в PEM, то есть в текст Base64 между строками BEGIN и END (RFC 7468). Форма JWK (RFC 7517) хранит те же числа в виде JSON.
модуль n = p × q, два простых числа примерно по половине размера ключа каждое
открытая экспонента e = 65537 (0x010001)
закрытая экспонента d, где d × e ≡ 1 по модулю (p − 1) × (q − 1)
Алгоритм и размер ключа
RSA-OAEP шифрует, а RSA-PSS и RSASSA-PKCS1-v1_5 подписывают. Все три используют здесь SHA-256. Размер ключа — это длина модуля n: 2048 бит — обычный минимум сегодня, 3072 и 4096 бит нужны для ключей, которые должны служить дольше. Большой ключ работает медленнее, но открытый ключ пары на 4096 бит всё равно невелик.
Браузер создаёт пару собственной криптографической библиотекой (crypto.subtle.generateKey в Web Cryptography API). Страница не содержит собственного кода RSA.
Где ключи в безопасности, а где нет
Ключи никогда не покидают эту страницу: их не отправляют, не хранят и не записывают в журнал. Риск — в самой странице. Всё, что работает на ней, и любое расширение браузера могут прочитать ключ, пока он показан, а копия в буфере обмена или загруженный файл остаются на диске, пока их не удалят.
Для ключа, который защищает деньги, аккаунт или работающую систему, создавайте его там, где закрытый ключ нельзя скопировать: в аппаратном модуле безопасности, в хранилище ключей или на сервере, который контролируете вы.
Пример: пара RSA-OAEP на 2048 бит
Если выбрать RSA-OAEP и 2048 бит и нажать «Создать пару ключей», получится закрытый ключ в PKCS#8, PEM которого начинается с -----BEGIN PRIVATE KEY-----, и открытый ключ в SPKI, PEM которого начинается с -----BEGIN PUBLIC KEY-----. JWK открытого ключа содержит kty RSA и e AQAB, что является Base64url от 65537. Его значение n занимает 256 байт, потому что 2048 бит — это 256 байт.
Частые вопросы
Безопасно ли создавать на этой странице ключ для настоящего сайта?
Для обучения и проверок да. Для ключей, которые защищают деньги, аккаунты или работающую систему, нет: браузер и его расширения могут прочитать ключ, пока он показан. Такие ключи создавайте там, где закрытый ключ нельзя скопировать.
Почему закрытый ключ в PKCS#8, а не в старом формате RSA PRIVATE KEY?
PKCS#8 (RFC 5958) называет алгоритм внутри ключа, поэтому читающая программа знает, для чего ключ. Большинство библиотек его принимает. Если вашей программе нужна старая форма, переведите ключ инструментом вроде openssl.
Почему открытая экспонента равна 65537?
Это 2 в степени 16 плюс 1, небольшое число, в котором установлены только два бита. Оно ускоряет операцию с открытым ключом и совпадает с тем, что используют основные библиотеки, поэтому страница берёт его для каждого ключа.
Выбирать 2048, 3072 или 4096 бит?
2048 бит — обычный минимум сегодня. Выбирайте 3072 или 4096, когда ключ должен оставаться надёжным много лет, и учитывайте, что подпись или расшифровка с большим ключом занимает больше времени.
Почему закрытый ключ намного длиннее открытого?
Открытый ключ содержит только модуль и открытую экспоненту. Закрытый ключ содержит ещё и два простых числа и значения, которые ускоряют расшифровку (RFC 8017, приложение A.1.2), поэтому он в несколько раз длиннее.
Сохраняет ли страница ключи после закрытия?
Нет. Ключи существуют только в памяти открытой страницы, а страница ничего не сохраняет в браузере, даже в локальном хранилище. Скопируйте или скачайте ключи, прежде чем закрыть её.
Источники
- RFC 8017: PKCS #1, спецификация криптографии RSA, версия 2.2 (на английском)
- RFC 5958: Asymmetric Key Packages, PKCS#8 (на английском)
- RFC 7468: Textual Encodings of PKIX, PKCS, and CMS Structures (на английском)
- RFC 7517: JSON Web Key (JWK) (на английском)
- W3C: Web Cryptography API (на английском)
Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..