Penukar Kunci JWK ⇄ PEM
Tukar kunci kriptografi antara format JWK dan PEM menggunakan Web Crypto API sebenar, nyahkod algoritma/lengkung/saiz, dan kira cap ibu jari JWK RFC 7638.
🔒 Diproses sepenuhnya dalam penyemak imbas anda — tiada apa yang anda masukkan di sini pernah dimuat naik.
Keputusan
JSON Web Keys (JWK) dan kunci berkod PEM muncul secara berganti-ganti dalam pustaka JWT, alatan TLS, dan konfigurasi OAuth/OIDC, tetapi menukar antara kedua-duanya secara manual bermakna menyahkod struktur DER base64 atau memformat semula JSON — mudah tersilap secara halus. Alat ini melakukan penukaran dengan Web Crypto API sebenar pelayar dan bukannya manipulasi teks: blok PEM yang ditampal diimport dengan crypto.subtle.importKey('spki'|'pkcs8', ...) dan dieksport semula sebagai JWK dengan exportKey('jwk', ...); JWK yang ditampal diimport dengan importKey('jwk', ...) dan dieksport semula sebagai SPKI atau PKCS8 DER, kemudian dibalut dengan pengepala PEM yang betul. Oleh kerana pelayar sendiri mengesahkan dan menyahkod bahan kunci, kunci yang rosak atau pemilihan algoritma yang tidak sepadan gagal dengan jelas, bukannya menghasilkan sampah secara senyap.
Algoritma yang disokong adalah RSA (RSASSA-PKCS1-v1_5), EC pada lengkung P-256/P-384/P-521, dan — di mana pelayar melaksanakannya — Ed25519 dan X25519. Sokongan pelayar untuk Ed25519/X25519 dalam Web Crypto masih tidak konsisten merentasi enjin, jadi daripada meneka dari rentetan ejen pengguna, alat ini menjalankan penyelidikan crypto.subtle.generateKey() sebenar untuk lengkung yang dipilih dan memberitahu anda terus jika ia tidak disokong di sini, bukannya memulangkan hasil rekaan.
Setiap penukaran juga menyahkod metadata sebenar kunci: untuk kunci RSA, panjang bit modulus dan algoritma cincang terus dari objek CryptoKey; untuk kunci EC dan OKP, lengkung bernama; dan untuk setiap kunci, cap ibu jari JWK RFC 7638 — cincangan SHA-256 anggota wajib JWK yang disusun dalam tertib leksikografi ketat (e/kty/n untuk RSA, crv/kty/x/y untuk EC, crv/kty/x untuk OKP/Ed25519/X25519). Cap ibu jari ini adalah apa yang digunakan oleh banyak sistem sebagai pengecam "kid" kunci, dan tersilap susunan anggota menghasilkan cincangan yang berbeza sepenuhnya, jenis kesilapan yang mudah dilakukan oleh pelaksanaan buatan tangan.
Oleh kerana semuanya berjalan melalui crypto.subtle dalam tab pelayar anda sendiri, bahan kunci persendirian tidak pernah meninggalkan peranti anda — tiada pelayan, tiada muat naik, dan tiada panggilan API luaran terlibat pada bila-bila masa sepanjang penukaran.