RSA-Schlüsselpaar-Generator
Erzeugen Sie RSA-Schlüsselpaare (öffentlich/privat) sofort im Browser. Unterstützt 512–8192 Bit, PEM-Format (PKCS#8 / X.509). Kompatibel mit OpenSSL, SSH, JWT und SSL/TLS. Kein Login erforderlich. Schlüssel verlassen Ihren Browser nicht.
Default: 2048 bits
PEM-Schlüsselprüfung
Fügen Sie einen öffentlichen oder privaten PEM-Schlüssel ein, um zu prüfen, ob er gültig ist.
Anleitung
Über dieses Tool
Verwenden Sie diesen RSA-Schlüsselpaar-Generator, wenn Sie einen öffentlichen und privaten Schlüssel für Entwicklung, SSH, TLS oder JWT-Experimente benötigen. Wählen Sie eine Schlüsselgröße wie 2048 Bit für alltägliche Tests oder 4096 Bit für ein stärkeres Paar und exportieren Sie anschließend PEM, geeignet für OpenSSL-ähnliche Workflows (privater Schlüssel im PKCS#8-Format und öffentlicher Schlüssel im X.509-Format). Die Generierung erfolgt vollständig in Ihrem Browser. Ihre Schlüssel werden auf Ihrem Gerät erstellt und nicht an die Server von Handy Dev Tools hochgeladen — wichtig, wenn Sie mit privatem Material arbeiten, selbst außerhalb der Produktion. Das Tool ist kostenlos und erfordert kein Konto. Behandeln Sie generierte Schlüssel als Entwicklungs-Anmeldedaten, sofern Sie nicht Ihrem eigenen sicheren Schlüsselverwaltungsprozess folgen. Bevorzugen Sie 2048 Bit oder mehr für realistische Tests, und halten Sie private Schlüssel aus Versionskontrolle und gemeinsam genutzten Chats fern.
Anleitung
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).
Optionen
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.
Anwendungsfälle
• 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
Code-Beispiele
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-öffentlicher Schlüssel → OpenSSH Einzeiler (authorized_keys)
2ssh-keygen -f public_key.pem -i -m PKCS8 > openssh_public.pub
3
4# Privaten Schlüssel prüfen
5openssl rsa -in private_key.pem -check -noout
6
7# CSR aus privatem Schlüssel (-subj für nicht interaktiv)
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.
Datenschutz und Daten
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.
Häufige Fragen
- Q: Was ist ein RSA-Schlüsselpaar?
- A: Ein RSA-Schlüsselpaar besteht aus einem öffentlichen Schlüssel und einem passenden privaten Schlüssel, die für Verschlüsselung, Signierung, SSH, TLS und JWT verwendet werden. Der öffentliche Schlüssel kann geteilt werden; der private Schlüssel muss geheim bleiben.
- Q: Welche Schlüsselgröße sollte ich verwenden?
- A: Verwenden Sie 2048 Bit für allgemeine Entwicklung und Tests. Bevorzugen Sie 4096 Bit, wenn Sie mehr Sicherheit benötigen. Vermeiden Sie sehr kleine Größen (z. B. 512) außerhalb von Legacy-Experimenten.
- Q: Werden meine Schlüssel auf einen Server hochgeladen?
- A: Nein. Die Generierung erfolgt in Ihrem Browser. Die Schlüssel werden nicht an die Server von Handy Dev Tools gesendet.
- Q: Welche Formate kann ich exportieren?
- A: PEM-Ausgabe, geeignet für OpenSSL-ähnliche Workflows (privater Schlüssel PKCS#8 / öffentlicher Schlüssel X.509). Zum lokalen Gebrauch kopieren oder herunterladen.
- Q: Ist das kostenlos?
- A: Ja. Keine Registrierung erforderlich.
- Q: Wie erzeuge ich dasselbe Schlüsselpaar in PHP?
- A: Verwenden Sie openssl_pkey_new() mit OPENSSL_KEYTYPE_RSA und einer Länge wie 2048, dann openssl_pkey_export() für den privaten und openssl_pkey_get_details() für den öffentlichen Schlüssel. Siehe das PHP-Beispiel auf dieser Seite. openssl_pkey_export() kann je nach OpenSSL/PHP PKCS#1 (BEGIN RSA PRIVATE KEY) ausgeben; dieses Tool exportiert PKCS#8 (BEGIN PRIVATE KEY). Beide werden weithin akzeptiert.
- Q: Kann ich diese Schlüssel mit Laravel JWT oder Passport verwenden?
- A: Ja für die Entwicklung. Dieses Tool exportiert PKCS#8-Privatschlüssel und X.509-(SPKI)-öffentliche Schlüssel, die Laravel Passport und RS256-JWT-Bibliotheken (z. B. tymon/jwt-auth) akzeptieren. Setzen Sie JWT_PRIVATE_KEY / JWT_PUBLIC_KEY auf die PEM-Dateien oder kopieren Sie sie nach storage/oauth-private.key und storage/oauth-public.key für Passport. Committen Sie keine privaten Schlüssel.
