0

Penukar Kunci JWK ⇄ PEM

Tukar kunci kriptografi antara format JWK dan PEM menggunakan Web Crypto API sebenar, menyahkod algoritma/lengkung/saiz dan mengira cap ibu jari RFC 7638 JWK.

Buy Me a Coffee at ko-fi.com
Memproses... 0%
Kunci penghuraian
Menukar format
Mengira cap ibu jari
Selesai

Hasilnya

Kunci Web JSON (JWK) dan kunci berkod PEM dipaparkan secara bergantian merentas pustaka JWT, perkakas TLS dan konfigurasi OAuth/OIDC, tetapi menukar antara kedua-duanya dengan tangan bermakna struktur DER penyahkodan base64 atau memformat semula JSON — mudah untuk menjadi salah secara halus. Alat ini melakukan penukaran dengan Web Crypto API sebenar penyemak imbas 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 penyemak imbas itu sendiri mengesahkan dan menyahkod bahan utama, kunci yang salah bentuk atau pemilihan algoritma yang tidak sepadan gagal dengan lantang dan bukannya menghasilkan sampah secara senyap.

Algoritma yang disokong ialah RSA (RSASSA-PKCS1-v1_5), EC pada lengkung P-256/P-384/P-521 dan — tempat penyemak imbas melaksanakannya — Ed25519 dan X25519. Sokongan penyemak imbas untuk Ed25519/X25519 dalam Web Crypto masih tidak konsisten merentas enjin, jadi bukannya meneka daripada rentetan ejen pengguna, alat itu menjalankan siasatan crypto.subtle.generateKey() sebenar untuk lengkung yang dipilih dan memberitahu anda dengan jelas jika ia tidak disokong di sini, dan bukannya mengembalikan hasil rekaan.

Setiap penukaran juga menyahkod metadata sebenar kunci: untuk kunci RSA, panjang bit modulus dan algoritma cincang terus daripada objek CryptoKey; untuk kunci EC dan OKP, lengkung yang dinamakan; dan untuk setiap kunci, cap ibu jari RFC 7638 JWK — cincang SHA-256 bagi ahli yang diperlukan JWK yang disiri dalam susunan leksikografi yang ketat (e/kty/n untuk RSA, crv/kty/x/y untuk EC, crv/kty/x untuk OKP/Ed25519/X25519/X25519). Cap ibu jari ini ialah apa yang digunakan oleh banyak sistem sebagai pengecam "kanak-kanak" kunci, dan membuat pesanan ahli yang salah menghasilkan cincang yang berbeza sama sekali, iaitu jenis kesilapan yang mungkin berlaku pada pelaksanaan gulung tangan.

Kerana semuanya berjalan melalui crypto.subtle dalam tab penyemak imbas anda sendiri, bahan kunci peribadi tidak pernah meninggalkan peranti anda — tiada pelayan, tiada muat naik dan tiada panggilan API luaran yang terlibat pada bila-bila masa dalam penukaran.