0

JWK ⇄ PEM-sleutelconverter

Converteer cryptografische sleutels tussen JWK en PEM met behulp van de echte Web Crypto API, decodeer algoritme/curve/grootte en bereken de RFC 7638 JWK-thumbprint.

🔒 Wordt volledig in uw browser verwerkt. Niets wat u hier invoert, wordt ooit geüpload.

Verwerken... 0%
Sleutel parsen
Formaat converteren
Thumbprint berekenen
Klaar

Resultaat

JSON Web Keys (JWK) en PEM-gecodeerde sleutels duiken door elkaar op in JWT-bibliotheken, TLS-tooling en OAuth/OIDC-configuraties, maar handmatig converteren tussen de twee betekent base64-decoderen van DER-structuren of JSON herformatteren — gemakkelijk om subtiel fout te doen. Deze tool voert de conversie uit met de echte Web Crypto API van de browser in plaats van tekstmanipulatie: een geplakt PEM-blok wordt geïmporteerd met crypto.subtle.importKey('spki'|'pkcs8', ...) en opnieuw geëxporteerd als JWK met exportKey('jwk', ...); een geplakt JWK wordt geïmporteerd met importKey('jwk', ...) en opnieuw geëxporteerd als SPKI- of PKCS8-DER, vervolgens verpakt in de correcte PEM-header. Omdat de browser zelf het sleutelmateriaal valideert en decodeert, faalt een misvormde sleutel of een niet-overeenkomende algoritmeselectie luidruchtig in plaats van stilletjes rommel te produceren.

Ondersteunde algoritmen zijn RSA (RSASSA-PKCS1-v1_5), EC op de P-256/P-384/P-521-curves en — waar de browser ze implementeert — Ed25519 en X25519. Browserondersteuning voor Ed25519/X25519 in Web Crypto is nog steeds inconsistent tussen engines, dus in plaats van te gokken op basis van de user-agentstring, voert de tool een echte crypto.subtle.generateKey()-probe uit voor de geselecteerde curve en vertelt u duidelijk of het hier niet wordt ondersteund, in plaats van een verzonnen resultaat terug te geven.

Elke conversie decodeert ook de echte metadata van de sleutel: voor RSA-sleutels de modulus-bitlengte en het hash-algoritme rechtstreeks uit het CryptoKey-object; voor EC- en OKP-sleutels de benoemde curve; en voor elke sleutel de RFC 7638 JWK-thumbprint — een SHA-256-hash van de vereiste JWK-leden geserialiseerd in strikt lexicografische volgorde (e/kty/n voor RSA, crv/kty/x/y voor EC, crv/kty/x voor OKP/Ed25519/X25519). Deze thumbprint is wat veel systemen gebruiken als 'kid'-identificator van een sleutel, en de volgorde van de leden verkeerd hebben levert een totaal andere hash op, precies het soort fout dat een handmatige implementatie snel maakt.

Omdat alles via crypto.subtle in uw eigen browsertabblad draait, verlaat privésleutelmateriaal nooit uw apparaat — er is geen server, geen upload en geen externe API-aanroep betrokken op enig punt in de conversie.