0

JWK ⇄ PEM Key Converter

Convertiți cheile criptografice între formatul JWK și PEM utilizând API-ul Web Crypto real, decodați algoritmul/curba/dimensiunea și calculați amprenta RFC 7638 JWK.

Buy Me a Coffee at ko-fi.com
Procesare... 0%
Cheie de analiză
Format de conversie
Amprenta digitală de calcul
Gata

Rezultat

Cheile web JSON (JWK) și cheile codificate PEM apar interschimbabil în bibliotecile JWT, instrumentele TLS și configurația OAuth/OIDC, dar conversia manuală între cele două înseamnă decodarea în bază de 64 a structurilor DER sau reformatarea JSON - ușor de greșit subtil. Acest instrument face conversia cu API-ul Web Crypto real al browserului în loc de manipularea textului: un bloc PEM lipit este importat cu crypto.subtle.importKey('spki'|'pkcs8', ...) și reexportat ca JWK cu exportKey('jwk', ...); un JWK lipit este importat cu importKey('jwk', ...) și reexportat ca SPKI sau PKCS8 DER, apoi împachetat în antetul PEM corect. Deoarece browserul însuși validează și decodifică materialul cheii, o cheie incorectă sau o selecție de algoritm nepotrivită eșuează cu voce tare în loc să producă gunoi în tăcere.

Algoritmii acceptați sunt RSA (RSASSA-PKCS1-v1_5), EC pe curbele P-256/P-384/P-521 și, acolo unde browserul le implementează, Ed25519 și X25519. Suportul de browser pentru Ed25519/X25519 în Web Crypto este încă inconsecvent între motoare, așa că, în loc să ghicească din șirul agentului utilizator, instrumentul rulează o sondă crypto.subtle.generateKey() reală pentru curba selectată și vă spune clar dacă nu este acceptată aici, mai degrabă decât să returneze un rezultat fabricat.

Fiecare conversie decodifică, de asemenea, metadatele reale ale cheii: pentru cheile RSA, lungimea biților de modul și algoritmul hash direct din obiectul CryptoKey; pentru tastele EC și OKP, curba numită; și pentru fiecare cheie, amprenta RFC 7638 JWK - un hash SHA-256 al membrilor necesari JWK serializați în ordine lexicografică strictă (e/kty/n pentru RSA, crv/kty/x/y pentru EC, crv/kty/x pentru OKP/Ed25519/X25519). Această amprentă este ceea ce multe sisteme folosesc ca identificator „copil” al unei chei, iar greșirea comenzii membrilor produce un hash complet diferit, care este exact tipul de greșeală la care este predispusă o implementare rulată manual.

Deoarece totul rulează prin crypto.subtle în propria filă a browserului, materialul cheii private nu părăsește niciodată dispozitivul dvs. - nu există niciun server, nicio încărcare și nici un apel API extern implicat în niciun moment al conversiei.