0

JWK ⇄ PEM Key Converter

Pretvorite kriptografske ključeve između JWK i PEM formata koristeći stvarni Web Crypto API, dekodirajte algoritam/krivulju/veličinu i izračunajte RFC 7638 JWK otisak.

Buy Me a Coffee at ko-fi.com
Obrada... 0%
Ključ za raščlanjivanje
Pretvaranje formata
Računalni otisak palca
Gotovo

Rezultat

JSON web-ključevi (JWK) i PEM-kodirani ključevi prikazuju se naizmjenično u JWT bibliotekama, TLS alatima i OAuth/OIDC konfiguraciji, ali ručno pretvaranje između ova dva znači DER strukture base64-dekodiranja ili ponovno formatiranje JSON-a — lako je suptilno pogriješiti. Ovaj alat radi pretvorbu sa stvarnim Web Crypto API-jem preglednika umjesto manipulacije tekstom: zalijepljeni PEM blok se uvozi s crypto.subtle.importKey('spki'|'pkcs8', ...) i ponovno izvozi kao JWK s exportKey('jwk', ...); zalijepljeni JWK se uvozi s importKey('jwk', ...) i ponovno izvozi kao SPKI ili PKCS8 DER, zatim se zamota u ispravno PEM zaglavlje. Budući da sam preglednik provjerava i dekodira ključni materijal, neispravan ključ ili odabir neusklađenog algoritma glasno otkazuje umjesto da tiho proizvodi smeće.

Podržani algoritmi su RSA (RSASSA-PKCS1-v1_5), EC na krivuljama P-256/P-384/P-521 i — gdje ih preglednik implementira — Ed25519 i X25519. Podrška preglednika za Ed25519/X25519 u Web Crypto još uvijek je nedosljedna među motorima, pa umjesto pogađanja iz niza korisničkog agenta, alat pokreće stvarnu crypto.subtle.generateKey() sondu za odabranu krivulju i jasno vam govori ako nije podržana ovdje, umjesto da vraća izmišljeni rezultat.

Svaka konverzija također dekodira stvarne metapodatke ključa: za RSA ključeve, duljinu bita modula i algoritam raspršivanja izravno iz objekta CryptoKey; za ključeve EC i OKP, imenovana krivulja; i za svaki ključ, RFC 7638 JWK thumbprint — SHA-256 raspršivanje potrebnih članova JWK-a serijaliziranih u strogom leksikografskom redoslijedu (e/kty/n za RSA, crv/kty/x/y za EC, crv/kty/x za OKP/Ed25519/X25519). Ovaj otisak prsta je ono što mnogi sustavi koriste kao identifikator "djeteta" ključa, a pogrešan redoslijed članova proizvodi potpuno drugačiji hash, što je upravo ona vrsta pogreške kojoj je sklona ručno valjana implementacija.

Budući da se sve odvija kroz crypto.subtle u vašoj vlastitoj kartici preglednika, materijal privatnog ključa nikada ne napušta vaš uređaj — nema poslužitelja, nema prijenosa niti vanjskog API poziva uključenog u bilo kojem trenutku konverzije.