0

JWK ⇄ PEM võtmeteisendaja

Teisenda krüptovõtmeid JWK ja PEM vormingute vahel, kasutades päris Web Crypto API-t, dekodeeri algoritm/kõver/suurus ja arvuta RFC 7638 JWK sõrmejälg.

🔒 Töödeldud täielikult teie brauseris – midagi, mida siia sisestate, ei laadita kunagi üles.

Töötlen... 0%
Võtme parsimine
Vormingu teisendamine
Sõrmejälje arvutamine
Valmis

Tulemus

JSON Web võtmed (JWK) ja PEM-kodeeringus võtmed esinevad vaheldumisi JWT teekides, TLS tööriistades ja OAuth/OIDC seadistustes, kuid käsitsi teisendamine tähendab DER struktuuride base64 dekodeerimist või JSON-i ümbervormindamist – lihtne vigu teha. See tööriist teostab teisenduse brauseri päris Web Crypto API abil, mitte tekstiga manipuleerides: kleebitud PEM plokk imporditakse crypto.subtle.importKey('spki'|'pkcs8', ...) abil ja eksporditakse uuesti JWK-na exportKey('jwk', ...) abil; kleebitud JWK imporditakse importKey('jwk', ...) abil ja eksporditakse uuesti SPKI või PKCS8 DER-ina, seejärel pakitakse õigesse PEM päisesse. Kuna brauser ise valideerib ja dekodeerib võtmematerjali, annab vigane võti või vale algoritmi valik valju vea, mitte ei tooda vaikselt prügi.

Toetatud algoritmid on RSA (RSASSA-PKCS1-v1_5), EC kõveratel P-256/P-384/P-521 ja – kui brauser neid rakendab – Ed25519 ja X25519. Brauseri tugi Ed25519/X25519 jaoks Web Crypto-s on endiselt mootorite lõikes ebaühtlane, seetõttu ei arva tööriist user agent stringi põhjal, vaid käivitab valitud kõvera jaoks päris crypto.subtle.generateKey() kontrolli ja ütleb selgelt, kui see siin ei ole toetatud, selle asemel et tagastada võltsitud tulemus.

Iga teisendus dekodeerib ka võtme tegelikud metaandmed: RSA võtmete puhul mooduli bitipikkus ja räsialgoritm otse CryptoKey objektist; EC ja OKP võtmete puhul nimetatud kõver; ja iga võtme puhul RFC 7638 JWK sõrmejälg – SHA-256 räsi JWK nõutud liikmetest, mis on serialiseeritud ranges leksikograafilises järjekorras (e/kty/n RSA jaoks, crv/kty/x/y EC jaoks, crv/kty/x OKP/Ed25519/X25519 jaoks). See sõrmejälg on see, mida paljud süsteemid kasutavad võtme "kid" identifikaatorina ja liikmete järjekorra valesti määramine annab täiesti erineva räsi – just selline viga, mida käsitsi tehtud teostus kergesti teeb.

Kuna kõik toimub crypto.subtle kaudu teie enda brauseri vahekaardil, ei lahku privaatvõtme materjal kunagi teie seadmest – servereid pole, üleslaadimist pole ja ühtegi välist API päringut ei toimu üheski teisenduse etapis.