JWK ⇄ PEM pretvornik ključeva
Pretvorite kriptografske ključeve između JWK i PEM formata koristeći pravi Web Crypto API, dekodirajte algoritam/krivulju/veličinu i izračunajte RFC 7638 JWK otisak.
🔒 U potpunosti se obrađuje u vašem pregledniku — ništa što ovdje unesete nikada se ne učitava.
Rezultat
JSON Web Keys (JWK) i PEM-kodirani ključevi pojavljuju se naizmjenično u JWT bibliotekama, TLS alatima i OAuth/OIDC konfiguraciji, ali ručno pretvaranje znači base64-dekodiranje DER struktura ili preformatiranje JSON-a – lako se pogriješi. Ovaj alat obavlja pretvorbu koristeći stvarni Web Crypto API 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 omata ispravnim PEM zaglavljem. Budući da preglednik sam provjerava i dekodira materijal ključa, neispravan ključ ili nepodudarni odabir algoritma rezultira greškom umjesto da tiho proizvede besmisleni rezultat.
Podržani algoritmi su RSA (RSASSA-PKCS1-v1_5), EC na P-256/P-384/P-521 krivuljama i – gdje ih preglednik implementira – Ed25519 i X25519. Podrška preglednika za Ed25519/X25519 u Web Crypto API-ju još je uvijek neujednačena među engine-ima, pa umjesto nagađanja iz user agent stringa, alat pokreće stvarni crypto.subtle.generateKey() test za odabranu krivulju i izravno vam kaže ako to ovdje nije podržano, umjesto da vraća izmišljeni rezultat.
Svaka pretvorba također dekodira stvarne metapodatke ključa: za RSA ključeve, duljinu modula u bitovima i hash algoritam izravno iz CryptoKey objekta; za EC i OKP ključeve, naziv krivulje; a za svaki ključ, RFC 7638 JWK otisak – SHA-256 hash obveznih č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 je ono što mnogi sustavi koriste kao identifikator "kid" ključa, a pogrešan redoslijed članova rezultira potpuno drugačijim hashom, što je upravo vrsta greške sklona ručnoj implementaciji.
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 podataka i nema vanjskog API poziva u bilo kojem trenutku pretvorbe.