0

JWK ⇄ PEM-Schlüsselkonverter

Konvertieren Sie kryptografische Schlüssel zwischen JWK und PEM mit der echten Web Crypto API, entschlüsseln Sie Algorithmus/Kurve/Größe und berechnen Sie den RFC-7638-JWK-Thumbprint.

🔒 Wird vollständig in Ihrem Browser verarbeitet – nichts, was Sie hier eingeben, wird jemals hochgeladen.

Verarbeitung... 0%
Schlüssel wird geparst
Format wird konvertiert
Thumbprint wird berechnet
Fertig

Ergebnis

JSON Web Keys (JWK) und PEM-kodierte Schlüssel tauchen austauschbar in JWT-Bibliotheken, TLS-Tooling und OAuth/OIDC-Konfigurationen auf, aber die Konvertierung von Hand bedeutet Base64-Dekodierung von DER-Strukturen oder Neuformatierung von JSON – leicht macht man dabei subtile Fehler. Dieses Tool führt die Konvertierung mit der echten Web Crypto API des Browsers durch statt per Textmanipulation: Ein eingefügter PEM-Block wird mit crypto.subtle.importKey('spki'|'pkcs8', ...) importiert und als JWK mit exportKey('jwk', ...) reexportiert; ein eingefügter JWK wird mit importKey('jwk', ...) importiert und als SPKI- oder PKCS8-DER reexportiert, dann in den korrekten PEM-Header eingebettet. Weil der Browser das Schlüsselmaterial selbst validiert und dekodiert, schlägt ein fehlerhafter Schlüssel oder eine falsche Algorithmusauswahl sofort fehl, anstatt stillschweigend Müll zu erzeugen.

Unterstützte Algorithmen sind RSA (RSASSA-PKCS1-v1_5), EC auf den Kurven P-256/P-384/P-521 und – wo der Browser sie implementiert – Ed25519 und X25519. Die Browserunterstützung für Ed25519/X25519 in Web Crypto ist noch uneinheitlich zwischen den Engines; daher führt das Tool eine echte crypto.subtle.generateKey()-Probe für die gewählte Kurve durch und sagt Ihnen klar, falls sie hier nicht unterstützt wird, anstatt ein erfundenes Ergebnis zu liefern.

Jede Konvertierung dekodiert auch die echten Metadaten des Schlüssels: bei RSA-Schlüsseln die Modulus-Bitlänge und den Hash-Algorithmus direkt aus dem CryptoKey-Objekt; bei EC- und OKP-Schlüsseln die benannte Kurve; und für jeden Schlüssel den RFC-7638-JWK-Thumbprint – einen SHA-256-Hash der erforderlichen JWK-Member in strikter lexikografischer Reihenfolge (e/kty/n für RSA, crv/kty/x/y für EC, crv/kty/x für OKP/Ed25519/X25519). Dieser Thumbprint wird von vielen Systemen als "kid"-Kennung eines Schlüssels verwendet, und eine falsche Reihenfolge erzeugt einen völlig anderen Hash – genau die Art Fehler, die eine handgestrickte Implementierung leicht macht.

Da alles über crypto.subtle in Ihrem eigenen Browser-Tab läuft, verlässt privates Schlüsselmaterial niemals Ihr Gerät – es gibt keinen Server, keinen Upload und keinen externen API-Aufruf zu irgendeinem Zeitpunkt der Konvertierung.