JWK ⇄ PEM-nyckelkonverterare
Konvertera kryptonycklar mellan JWK och PEM-format med riktiga Web Crypto API, avkoda algoritm/kurva/storlek och beräkna RFC 7638 JWK-thumbprint.
🔒 Bearbetas helt i din webbläsare – ingenting du anger här laddas någonsin upp.
Resultat
JSON Web Keys (JWK) och PEM-kodade nycklar förekommer utbytbart i JWT-bibliotek, TLS-verktyg och OAuth/OIDC-konfiguration, men att konvertera mellan de två för hand innebär base64-avkodning av DER-strukturer eller omformatering av JSON — lätt att få lite fel. Detta verktyg utför konverteringen med webbläsarens riktiga Web Crypto API istället för textmanipulation: ett inklistrat PEM-block importeras med crypto.subtle.importKey('spki'|'pkcs8', ...) och exporteras igen som JWK med exportKey('jwk', ...); en inklistrad JWK importeras med importKey('jwk', ...) och exporteras igen som SPKI eller PKCS8 DER, och paketeras sedan i rätt PEM-huvud. Eftersom webbläsaren själv validerar och avkodar nyckelmaterialet, misslyckas en felaktig nyckel eller ett felaktigt algoritmval med ett tydligt fel istället för att tyst producera skräp.
Stödda algoritmer är RSA (RSASSA-PKCS1-v1_5), EC på kurvorna P-256/P-384/P-521 och — där webbläsaren implementerar dem — Ed25519 och X25519. Webbläsarstödet för Ed25519/X25519 i Web Crypto är fortfarande inkonsekvent mellan motorer, så istället för att gissa från användaragentsträngen kör verktyget en riktig crypto.subtle.generateKey()-avsökning för den valda kurvan och talar tydligt om ifall den inte stöds här, istället för att returnera ett fabricerat resultat.
Varje konvertering avkodar också nyckelns verkliga metadata: för RSA-nycklar, modulus bitlängd och hash-algoritm direkt från CryptoKey-objektet; för EC- och OKP-nycklar, den namngivna kurvan; och för varje nyckel, RFC 7638 JWK-thumbprintet — en SHA-256-hash av JWK:ns obligatoriska medlemmar serialiserade i strikt lexikografisk ordning (e/kty/n för RSA, crv/kty/x/y för EC, crv/kty/x för OKP/Ed25519/X25519). Detta thumbprint är vad många system använder som en nyckels 'kid'-identifierare, och att få medlemsordningen fel ger ett helt annat hash-värde, vilket är precis den typ av misstag en handskriven implementering är benägen att göra.
Eftersom allt körs genom crypto.subtle i din egen webbläsarflik lämnar privat nyckelmaterial aldrig din enhet — det finns ingen server, ingen uppladdning och inget externt API-anrop vid något tillfälle under konverteringen.