Генератор пар ключей RSA
Пара ключей RSA состоит из двух математически взаимосвязанных чисел: публичного ключа, который вы предоставляете другим, и приватного ключа, который вы храните в безопасности. Данный генератор создаёт оба ключа в стандартном кодировании PEM с использованием криптографически безопасного случайного источника данных. Используйте его для инициализации подписчика JWT, создания сертификата TLS для тестовой среды или формирования идентичности для подключения по SSH без необходимости использования командной строки.
Как создать пару ключей RSA
-
1
Выберите размер ключа
Выберите 2048, 3072 или 4096 бит. Более длинные ключи обеспечивают большую безопасность, но требуют больше времени на подпись и проверку.
-
2
Генерировать
Инструмент создаёт новый модуль и частный экспонент с использованием примитивов WebCrypto.
-
3
Копировать или скачать
Получите частный ключ, закодированный в формате PEM (BEGIN PRIVATE KEY), и соответствующий публичный ключ (BEGIN PUBLIC KEY).
-
4
Безопасно храните частный ключ
Перенесите его в менеджер секретов или ключевую цепочку, ни в коем случае не вставляйте его в чаты, электронную почту или публичные репозитории.
Какой размер ключа следует использовать?
Больший размер не всегда лучше. Правильный размер зависит от срока службы ключа и от того, сколько ресурсов процессора вы готовы тратить на каждую подпись.
Рекомендации NIST кратко
| Размер ключа | Уровень безопасности | Типичное применение | Относительная стоимость подписи |
|---|---|---|---|
| 2048 бит | ~112 бит | Подписывание JWT, краткосрочные сертификаты TLS, большинство API | 1x |
| 3072 бит | ~128 бит | Долговечные корневые центры сертификации (CA), соответствие FIPS > 2030 | ~3x |
| 4096 бит | ~140 бит | Высоконадёжные корневые ключи, долгосрочное подписание документов | ~7x |
Как PEM вписывается в контекст
Ключи упакованы по стандарту PKCS#8/SPKI и закодированы в base64 между маркерами -----BEGIN----- и -----END-----. Это именно тот формат, который ожидают все основные библиотеки: OpenSSL, crypto в Node.js, cryptography в Python, crypto/rsa в Go и KeyFactory в Java.
Практические советы
- Проводите ротацию не реже раза в год для ключей подписи с широким охватом.
- Для новых систем выбирайте ECDSA (P-256) или Ed25519, они быстрее, а подписи значительно меньше.
- Никогда не используйте одну пару ключей в несвязанных системах. Если один ключ утечёт, под угрозой окажется всё, что от него зависит.
- Используйте парольную фразу при хранении закрытого ключа на диске. Стандартом является зашифрованный PEM (
BEGIN ENCRYPTED PRIVATE KEY).
Часто задаваемые вопросы
Да, это относится к большинству случаев подписания API и сессий. Национальный институт стандартов и технологий (NIST) и Британский институт стандартов (BSI) по-прежнему считают алгоритм RSA с ключом длиной 2048 бит приемлемым как минимум до 2030 года; однако для случаев, требующих более длительного использования, рекомендуется использовать алгоритм с ключом длиной 3072 бита.
Частный ключ PEM используется вместе с ssh-keygen -y -f key.pem для получения публичного ключа ssh-rsa. Для повседневного использования протокола SSH рекомендуется использовать алгоритм Ed25519, ключи получены более компактными и вычисления выполняются быстрее.
Первый алгоритм, PKCS#1 (доступен только для RSA). Второй, PKCS#8 (оболочка, независимая от конкретного алгоритма), который предпочтительно используется современными библиотеками; данный инструмент генерирует данные в формате PKCS#8.
Это не так. Генерация ключей выполняется локально через API WebCrypto, а файл формата PEM формируется в памяти перед отображением на странице.
Сопутствующие инструменты
Генератор SSL-сертификатов
Создайте самоподписанный сертификат SSL/TLS и закрытый ключ RSA полностью в браузере. Свои Common Name, SAN и срок действия, экспорт в PEM.
Кодировщик и декодировщик Base85
Кодируйте и декодируйте Base85 в варианте Adobe Ascii85, который используется в файлах PostScript и PDF. Компактнее Base64 для двоичных данных.
Генератор хешей
Создавайте хеши MD5, SHA-1, SHA-256, SHA-384, SHA-512 и CRC32 из текста, с готовым для копирования дайджестом для контрольных сумм и сравнений.
Генератор ключей PGP
Создайте пару ключей OpenPGP в текстовом формате ASCII и сертификат отзыва с Curve25519, RSA 2048 или RSA 4096.
Идентификатор шифрования
Вставьте зашифрованный текст, и идентификатор предложит вероятные схемы кодирования/шифрования: Base64, hex, двоичный, Морзе, Цезарь или подстановочный, JWT и распространенные хеши.
Конвертер ETH в USD
Переводите Ethereum (ETH) в доллары США по актуальному курсу ETH/USD или по своему курсу. Узнайте, сколько стоит в долларах любое количество ETH.
Инструмент доступен на других языках
- Generator par kluczy RSA [PL]
- Generator Pasangan Kunci RSA [ID]
- RSA-Schlüsselpaar-Generator [DE]
- เครื่องสร้างคู่กุญแจ RSA (RSA Key Pair Generator) [TH]
- Gerador de Par de Chaves RSA [PT]
- RSA鍵ペア生成器 [JA]
- RSA 키 쌍 생성기 [KO]
- RSA nyckelpargenerator [SV]
- Bộ tạo cặp khóa RSA [VI]
- Generador de pares de claves RSA [ES]
- مولد زوج المفتاح RSA [AR]
- Générateur de paire de clés RSA [FR]
- RSA-sleutelpaargenerator [NL]
- RSA Key Pair Generator [EN]
- Generatore di coppie di chiavi RSA [IT]
- RSA Anahtar Çifti Oluşturucu [TR]
- RSA密钥对生成器 [ZH]