0

Konwerter kluczy JWK ⇄ PEM

Konwertuj klucze kryptograficzne między formatami JWK i PEM za pomocą prawdziwego Web Crypto API, dekoduj algorytm/krzywą/rozmiar i oblicz odcisk JWK zgodny z RFC 7638.

🔒 Przetwarzane w całości w Twojej przeglądarce — nic, co tu wpiszesz, nie zostanie nigdy przesłane.

Przetwarzanie... 0%
Analizowanie klucza
Konwertowanie formatu
Obliczanie odcisku
Gotowe

Wynik

Klucze JSON Web Keys (JWK) i klucze kodowane w formacie PEM występują zamiennie w bibliotekach JWT, narzędziach TLS i konfiguracjach OAuth/OIDC, ale ręczna konwersja między nimi oznacza dekodowanie struktur DER z base64 lub przeformatowanie JSON — łatwo popełnić subtelny błąd. To narzędzie wykonuje konwersję przy użyciu prawdziwego Web Crypto API przeglądarki, zamiast manipulacji tekstem: wklejony blok PEM jest importowany za pomocą crypto.subtle.importKey('spki'|'pkcs8', ...) i ponownie eksportowany jako JWK przez exportKey('jwk', ...); wklejony JWK jest importowany przez importKey('jwk', ...) i ponownie eksportowany jako DER SPKI lub PKCS8, a następnie opakowywany w odpowiedni nagłówek PEM. Ponieważ to przeglądarka sprawdza poprawność i dekoduje materiał klucza, nieprawidłowy klucz lub niewłaściwy wybór algorytmu kończy się wyraźnym błędem, zamiast po cichu generować śmieci.

Obsługiwane algorytmy to RSA (RSASSA-PKCS1-v1_5), EC na krzywych P-256/P-384/P-521 oraz — jeśli przeglądarka je implementuje — Ed25519 i X25519. Wsparcie przeglądarek dla Ed25519/X25519 w Web Crypto wciąż różni się w zależności od silnika, więc zamiast zgadywać na podstawie ciągu user agent, narzędzie wykonuje rzeczywiste sprawdzenie crypto.subtle.generateKey() dla wybranej krzywej i jasno informuje, jeśli nie jest ona tutaj obsługiwana, zamiast zwracać zmyślony wynik.

Każda konwersja dekoduje również rzeczywiste metadane klucza: dla kluczy RSA — długość bitową modułu i algorytm haszujący bezpośrednio z obiektu CryptoKey; dla kluczy EC i OKP — nazwaną krzywą; a dla każdego klucza — odcisk JWK zgodny z RFC 7638 (skrót SHA-256 z wymaganych pól JWK serializowanych w ścisłym porządku leksykograficznym: e/kty/n dla RSA, crv/kty/x/y dla EC, crv/kty/x dla OKP/Ed25519/X25519). Ten odcisk jest tym, co wiele systemów wykorzystuje jako identyfikator klucza (kid), a pomyłka w kolejności pól daje zupełnie inny skrót — dokładnie taki błąd, do jakiego skłonna jest ręczna implementacja.

Ponieważ wszystko działa przez crypto.subtle w karcie Twojej własnej przeglądarki, materiał klucza prywatnego nigdy nie opuszcza Twojego urządzenia — w żadnym momencie konwersji nie jest używany serwer, przesyłanie ani zewnętrzne wywołanie API.