Générateur de paire de clés RSA
Générez instantanément des paires de clés RSA publique/privée dans votre navigateur. Longueurs 512–8192 bits, format PEM (PKCS#8 / X.509). Compatible avec OpenSSL, SSH, JWT et SSL/TLS. Aucune connexion requise. Les clés ne quittent pas votre navigateur.
Default: 2048 bits
Validation de clé PEM
Collez une clé PEM publique ou privée pour vérifier si elle est valide.
Comment utiliser
À propos de cet outil
Utilisez ce générateur de paire de clés RSA lorsque vous avez besoin d'une clé publique et privée pour le développement, SSH, TLS ou des expérimentations JWT. Choisissez une taille de clé, par exemple 2048 bits pour des tests courants ou 4096 bits pour une paire plus robuste, puis exportez au format PEM adapté aux workflows de type OpenSSL (clé privée PKCS#8 et clé publique X.509). La génération s'effectue entièrement dans votre navigateur. Vos clés sont créées sur votre appareil et ne sont pas envoyées aux serveurs de Handy Dev Tools — un point important lorsque vous manipulez du matériel privé, même en dehors de la production. L'outil est gratuit et ne nécessite pas de compte. Considérez les clés générées comme des identifiants de développement, sauf si vous suivez votre propre processus sécurisé de gestion des clés. Privilégiez 2048 bits ou plus pour des tests réalistes, et gardez les clés privées hors du contrôle de version et des discussions partagées.
Comment utiliser
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).
Options
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.
Cas d'utilisation
• 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
Exemples de code
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# Clé publique PEM → format OpenSSH une ligne (authorized_keys)
2ssh-keygen -f public_key.pem -i -m PKCS8 > openssh_public.pub
3
4# Vérifier la clé privée
5openssl rsa -in private_key.pem -check -noout
6
7# Créer une CSR (ajoutez -subj pour le mode non interactif)
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.
Vie privée et données
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.
FAQ
- Q: Qu'est-ce qu'une paire de clés RSA ?
- A: Une paire de clés RSA est une clé publique et une clé privée correspondante, utilisées pour le chiffrement, la signature, SSH, TLS et JWT. La clé publique peut être partagée ; la clé privée doit rester secrète.
- Q: Quelle taille de clé dois-je utiliser ?
- A: Utilisez 2048 bits pour le développement et les tests courants. Privilégiez 4096 bits lorsque vous avez besoin d'une sécurité renforcée. Évitez les tailles très petites (par exemple 512) en dehors d'expérimentations sur des systèmes anciens.
- Q: Mes clés sont-elles envoyées à un serveur ?
- A: Non. La génération s'exécute dans votre navigateur. Les clés ne sont pas envoyées aux serveurs de Handy Dev Tools.
- Q: Quels formats puis-je exporter ?
- A: Une sortie PEM adaptée aux workflows de type OpenSSL (clé privée PKCS#8 / clé publique X.509). Copiez ou téléchargez pour un usage local.
- Q: Est-ce gratuit ?
- A: Oui. Aucune inscription requise.
- Q: Comment générer la même paire de clés en PHP ?
- A: Utilisez openssl_pkey_new() avec OPENSSL_KEYTYPE_RSA et une longueur telle que 2048, puis openssl_pkey_export() pour la clé privée et openssl_pkey_get_details() pour la clé publique. Voir l'exemple PHP sur cette page. openssl_pkey_export() peut émettre du PKCS#1 (BEGIN RSA PRIVATE KEY) selon OpenSSL/PHP ; cet outil exporte du PKCS#8 (BEGIN PRIVATE KEY). Les deux sont largement acceptés.
- Q: Puis-je utiliser ces clés avec Laravel JWT ou Passport ?
- A: Oui pour le développement. Cet outil exporte des clés privées PKCS#8 et publiques X.509 (SPKI), acceptées par Laravel Passport et les bibliothèques JWT RS256 (ex. tymon/jwt-auth). Pointez JWT_PRIVATE_KEY / JWT_PUBLIC_KEY vers les fichiers PEM, ou copiez-les vers storage/oauth-private.key et storage/oauth-public.key pour Passport. Ne commitez pas les clés privées.
