Генератор пары ключей RSA
Мгновенно создавайте пары RSA (открытый/закрытый ключ) в браузере. Поддержка длины 512–8192 бит, формат PEM (PKCS#8 / X.509). Совместимо с OpenSSL, SSH, JWT и SSL/TLS. Вход не требуется. Ключи не покидают браузер.
Default: 2048 bits
Проверка PEM-ключа
Вставьте PEM открытого или закрытого ключа, чтобы проверить его корректность.
Как использовать
Об этом инструменте
Используйте этот генератор пары ключей RSA, когда вам нужны открытый и закрытый ключи для разработки, экспериментов с SSH, TLS или JWT. Выберите размер ключа, например 2048 бит для повседневного тестирования или 4096 бит для более надёжной пары, а затем экспортируйте PEM, подходящий для рабочих процессов в стиле OpenSSL (закрытый ключ PKCS#8 и открытый ключ X.509). Генерация полностью выполняется в вашем браузере. Ключи создаются на вашем устройстве и не загружаются на серверы Handy Dev Tools — это важно при работе с закрытым материалом, даже в непроизводственном использовании. Инструмент бесплатен и не требует учётной записи. Относитесь к сгенерированным ключам как к учётным данным для разработки, если только вы не следуете собственному процессу безопасного управления ключами. Предпочитайте размер 2048 бит и выше для реалистичного тестирования и не храните закрытые ключи в системах контроля версий и общих чатах.
Как использовать
1. When you open the page, a key pair is automatically generated with the default (2048 bits), and the public and private keys are displayed. 2. To change key length: Enter a value that is a multiple of 8 between 512 and 8192 bits in the key length field, then click "Generate". 3. To generate a new key pair with the same key length: Click the "Regenerate" button. 4. Copy keys: Click the copy button in each key's display area to copy to the clipboard. 5. Download keys: Click the download button in each key's display area to download as a PEM file (public key: public_key.pem, private key: private_key.pem).
Опции
Key length: Must be between 512 and 8192 bits and a multiple of 8. Default is 2048 bits. Use the up/down buttons in the number input to increment/decrement by 8. Invalid values (out of range or not a multiple of 8) show an error message and disable the "Generate" and "Regenerate" buttons.
Примеры использования
• Generating key pairs for SSH connections (public key authentication setup) • Creating private keys for SSL/TLS certificates • Generating key pairs for JWT signing • Creating key pairs for encrypted communication • Temporary key pair generation for development and testing • Generating key pairs for code signing
Примеры кода
1// Generate key pair
2const keyPair = await window.crypto.subtle.generateKey(
3 {
4 name: 'RSA-OAEP',
5 modulusLength: 2048,
6 publicExponent: new Uint8Array([1, 0, 1]), // 65537
7 hash: 'SHA-256',
8 },
9 true, // extractable
10 ['encrypt', 'decrypt']
11);1from cryptography.hazmat.primitives.asymmetric import rsa
2from cryptography.hazmat.primitives import serialization
3
4# Generate key pair
5private_key = rsa.generate_private_key(
6 public_exponent=65537,
7 key_size=2048
8)
9public_key = private_key.public_key()
10
11# Export in PEM format
12private_pem = private_key.private_bytes(
13 encoding=serialization.Encoding.PEM,
14 format=serialization.PrivateFormat.PKCS8,
15 encryption_algorithm=serialization.NoEncryption()
16)
17public_pem = public_key.public_bytes(
18 encoding=serialization.Encoding.PEM,
19 format=serialization.PublicFormat.SubjectPublicKeyInfo
20)1# Generate 2048-bit RSA private key
2openssl genrsa -out private_key.pem 2048
3
4# Extract public key
5openssl rsa -in private_key.pem -pubout -out public_key.pem1# PEM открытый ключ → однострочный OpenSSH (authorized_keys)
2ssh-keygen -f public_key.pem -i -m PKCS8 > openssh_public.pub
3
4# Проверка закрытого ключа
5openssl rsa -in private_key.pem -check -noout
6
7# CSR из закрытого ключа (добавьте -subj без запросов)
8openssl req -new -key private_key.pem -out csr.pem1$config = [
2 'private_key_bits' => 2048,
3 'private_key_type' => OPENSSL_KEYTYPE_RSA,
4];
5$key = openssl_pkey_new($config);
6openssl_pkey_export($key, $privatePem);
7$details = openssl_pkey_get_details($key);
8$publicPem = $details['key'];
9
10// openssl_pkey_export may emit PKCS#1 (BEGIN RSA PRIVATE KEY)
11// depending on OpenSSL/PHP. This tool exports PKCS#8 (BEGIN PRIVATE KEY).1// .env — store file paths, never paste PEM contents
2// JWT_ALGO=RS256
3// JWT_PRIVATE_KEY=file:///var/www/certs/private_key.pem
4// JWT_PUBLIC_KEY=file:///var/www/certs/public_key.pem
5
6// Laravel Passport
7// php artisan passport:keys
8// Or copy this tool's PEM to storage/oauth-private.key
9// and storage/oauth-public.keyHow it works
RSA key pair generation prioritizes the Web Crypto API. If Web Crypto API is unavailable or PEM conversion fails, it falls back to the node-forge library. Keys are PEM: private keys in PKCS#8 (-----BEGIN PRIVATE KEY-----), public keys as X.509 SubjectPublicKeyInfo (-----BEGIN PUBLIC KEY-----). Larger key lengths take longer to generate, but a 2048-bit key pair typically completes within 5 seconds. All processing is done in the browser; keys are never sent to any server.
Конфиденциальность и данные
All key generation is done in the browser; generated public and private keys are never sent to any server. Keys exist only in browser memory and are not automatically saved. Private keys are sensitive — manage them carefully and clear them from memory (e.g., close the browser) when done. Do not paste private keys into FAQ answers, chat, or source code. For production, prefer generating keys in a secure, isolated environment when possible.
Частые вопросы
- Q: Что такое пара ключей RSA?
- A: Пара ключей RSA — это открытый ключ и соответствующий ему закрытый ключ, используемые для шифрования, подписи, SSH, TLS и JWT. Открытым ключом можно делиться, а закрытый ключ должен оставаться секретным.
- Q: Какой размер ключа следует использовать?
- A: Используйте 2048 бит для обычной разработки и тестирования. Предпочитайте 4096 бит, если нужна более высокая безопасность. Избегайте очень маленьких размеров (например, 512) вне устаревших экспериментов.
- Q: Загружаются ли мои ключи на сервер?
- A: Нет. Генерация выполняется в вашем браузере. Ключи не отправляются на серверы Handy Dev Tools.
- Q: Какие форматы можно экспортировать?
- A: Вывод в формате PEM, подходящем для рабочих процессов в стиле OpenSSL (закрытый ключ PKCS#8 / открытый ключ X.509). Скопируйте или скачайте для локального использования.
- Q: Это бесплатно?
- A: Да. Регистрация не требуется.
- Q: Как сгенерировать такую же пару ключей в PHP?
- A: Используйте openssl_pkey_new() с OPENSSL_KEYTYPE_RSA и длиной модуля (например, 2048), затем openssl_pkey_export() для закрытого ключа и openssl_pkey_get_details() для открытого. См. PHP-пример на этой странице. openssl_pkey_export() может выдать PKCS#1 (BEGIN RSA PRIVATE KEY) в зависимости от OpenSSL/PHP; этот инструмент экспортирует PKCS#8 (BEGIN PRIVATE KEY). Оба формата широко принимаются.
- Q: Можно ли использовать эти ключи в Laravel JWT или Passport?
- A: Да, для разработки. Инструмент экспортирует закрытый ключ PKCS#8 и открытый X.509 (SPKI), которые принимают Laravel Passport и библиотеки JWT RS256 (например, tymon/jwt-auth). Укажите JWT_PRIVATE_KEY / JWT_PUBLIC_KEY на PEM-файлы или скопируйте их в storage/oauth-private.key и storage/oauth-public.key для Passport. Не коммитьте закрытые ключи.
