JWK ⇄ PEM atslēgu pārveidotājs
Konvertējiet kriptogrāfiskās atslēgas starp JWK un PEM formātu, izmantojot īsto Web Crypto API, atšifrējiet algoritmu/līkni/izmēru un aprēķiniet RFC 7638 JWK īkšķa nospiedumu.
Rezultāts
JSON tīmekļa atslēgas (JWK) un PEM kodētās atslēgas tiek aizvietotas JWT bibliotēkās, TLS rīkos un OAuth/OIDC konfigurācijā, taču pārveidošana starp abām manuāli nozīmē base64 DER struktūru dekodēšanu vai JSON pārformatēšanu — viegli kļūdīties. Šis rīks veic konvertēšanu, izmantojot pārlūkprogrammas īsto Web Crypto API, nevis teksta manipulācijas: ielīmēts PEM bloks tiek importēts ar crypto.subtle.importKey('spki'|'pkcs8', ...) un atkārtoti eksportēts kā JWK ar exportKey('jwk', ...); ielīmēts JWK tiek importēts ar importKey('jwk', ...) un atkārtoti eksportēts kā SPKI vai PKCS8 DER, pēc tam iesaiņots pareizajā PEM galvenē. Tā kā pārlūkprogramma pati apstiprina un atkodē atslēgas materiālu, nepareizi veidota atslēga vai neatbilstoša algoritma atlase neizdodas skaļi, nevis klusi rada atkritumus.
Atbalstītie algoritmi ir RSA (RSASSA-PKCS1-v1_5), EC uz P-256/P-384/P-521 līknēm un — ja pārlūkprogramma tos ievieš — Ed25519 un X25519. Pārlūkprogrammas Ed25519/X25519 atbalsts Web Crypto joprojām ir nekonsekvents visos dzinējos, tāpēc tā vietā, lai uzminētu no lietotāja aģenta virknes, rīks izvēlētajai līknei palaiž faktisku crypto.subtle.generateKey() zondi un skaidri norāda, vai tas šeit netiek atbalstīts, nevis atgriež izdomātu rezultātu.
Katrs reklāmguvums atšifrē arī atslēgas reālos metadatus: RSA atslēgām moduļa bitu garuma un jaukšanas algoritms tieši no CryptoKey objekta; EC un OKP taustiņiem nosauktā līkne; un katrai atslēgai RFC 7638 JWK īkšķa nospiedums — SHA-256 jaucējs no JWK nepieciešamajiem dalībniekiem, kas sakārtoti stingrā leksikogrāfiskā secībā (e/kty/n RSA, crv/kty/x/y EC, crv/kty/x OKP/Ed25519/X25). Šis īkšķa nospiedums ir tas, ko daudzas sistēmas izmanto kā atslēgas “bērnu” identifikatoru, un nepareiza dalībnieka secības iegūšana rada pilnīgi citu jaucējkodu, kas ir tieši tāda kļūda, ko var pieļaut ar roku ripināta ieviešana.
Tā kā viss darbojas caur crypto.subtle jūsu pārlūkprogrammas cilnē, privātās atslēgas materiāls nekad netiek atstāts no jūsu ierīces — nevienā konvertēšanas brīdī nav iesaistīts neviens serveris, nav augšupielāde un ārējs API izsaukums.