0

Konvertor kľúčov JWK ⇄ PEM

Preveďte kryptografické kľúče medzi formátom JWK a PEM pomocou skutočného rozhrania Web Crypto API, dekódujte algoritmus/krivku/veľkosť a vypočítajte odtlačok RFC 7638 JWK.

Buy Me a Coffee at ko-fi.com
Spracovanie... 0%
Kľúč analýzy
Konvertovanie formátu
Výpočet odtlačku palca
Hotovo

Výsledok

Webové kľúče JSON (JWK) a kľúče zakódované v PEM sa zameniteľne zobrazujú v knižniciach JWT, nástrojoch TLS a konfigurácii OAuth/OIDC, ale ručná konverzia medzi nimi znamená dekódovanie štruktúr DER base64 alebo preformátovanie JSON – ľahko sa jemne pomýlite. Tento nástroj vykonáva konverziu pomocou skutočného rozhrania Web Crypto API prehliadača namiesto manipulácie s textom: vložený blok PEM sa importuje pomocou crypto.subtle.importKey('spki'|'pkcs8', ...) a znova sa exportuje ako JWK pomocou exportKey('jwk', ...); vložený JWK sa importuje pomocou importKey('jwk', ...) a znova sa exportuje ako SPKI alebo PKCS8 DER, potom sa zabalí do správnej hlavičky PEM. Pretože samotný prehliadač overuje a dekóduje kľúčový materiál, chybný kľúč alebo výber nesprávneho algoritmu hlasno zlyhávajú namiesto toho, aby v tichosti vytvárali odpad.

Podporované algoritmy sú RSA (RSASSA-PKCS1-v1_5), EC na krivkách P-256/P-384/P-521 a – tam, kde ich prehliadač implementuje – Ed25519 a X25519. Podpora prehliadača pre Ed25519/X25519 vo Web Crypto je stále nekonzistentná medzi strojmi, takže namiesto hádania z reťazca používateľského agenta nástroj spustí skutočnú sondu crypto.subtle.generateKey() pre vybranú krivku a jasne vám povie, ak tu nie je podporovaná, namiesto toho, aby vrátil vyrobený výsledok.

Každá konverzia tiež dekóduje skutočné metadáta kľúča: pre kľúče RSA modulovú bitovú dĺžku a algoritmus hash priamo z objektu CryptoKey; pre kľúče EC a OKP pomenovaná krivka; a pre každý kľúč odtlačok RFC 7638 JWK – SHA-256 hash požadovaných členov JWK serializovaných v prísnom lexikografickom poradí (e/kty/n pre RSA, crv/kty/x/y pre EC, crv/kty/x pre OKP/Ed25519/X25519). Tento odtlačok je to, čo mnohé systémy používajú ako kľúčový „detský“ identifikátor a nesprávne poradie členov vytvára úplne iný hash, čo je presne ten druh chyby, ku ktorej je vlastná implementácia náchylná.

Pretože všetko prebieha cez crypto.subtle vo vašej vlastnej karte prehliadača, materiál súkromného kľúča nikdy neopustí vaše zariadenie – v žiadnom bode konverzie nie je zahrnutý žiadny server, žiadne nahrávanie ani žiadne externé volanie API.