UTILS.
100% w przeglądarce
🗝️

Generator par kluczy RSA / EC (eksport PEM)

Wygeneruj parę kluczy RSA lub EC w swojej przeglądarce za pomocą WebCrypto i wyeksportuj klucz publiczny i prywatny jako PEM lub JWK. Klucze nigdy nie opuszczają Twojego urządzenia.

Klucze są generowane lokalnie w Twojej przeglądarce — klucz prywatny nigdy nie jest przesyłany.

— wynik pojawi się tutaj —
— wynik pojawi się tutaj —

O tym narzędziu

Generator par kluczy RSA / EC tworzy asymetryczną parę kluczy całkowicie w Twojej przeglądarce za pomocą natywnego API WebCrypto (crypto.subtle.generateKey), a następnie eksportuje ją w formatach, które faktycznie wklejasz do plików konfiguracyjnych i kodu. Nic nie jest przesyłane ani przechowywane na serwerze: klucz prywatny jest generowany na Twoim urządzeniu, pokazywany raz i odrzucany, gdy opuszczasz stronę. To bezpieczny sposób na tworzenie kluczy dla narzędzi powiązanych z SSH, podpisywania JWT, eksperymentów z TLS czy nauki, jak formaty kluczy publicznych do siebie pasują.

Dla RSA wybierasz długość modułu 2048, 3072 lub 4096 bitów ze standardowym wykładnikiem publicznym 65537 oraz to, czy klucz służy do podpisywania (RSASSA-PKCS1-v1_5, SHA-256), czy szyfrowania (RSA-OAEP, SHA-256). Dla kluczy krzywej eliptycznej wybierasz krzywą NIST — P-256, P-384 lub P-521 — oraz to, czy służy do podpisywania (ECDSA), czy uzgadniania klucza (ECDH). Większe moduły RSA i wyższe krzywe są silniejsze, ale wolniejsze w generowaniu; zwłaszcza RSA-4096 może zająć kilka sekund w przeglądarce.

Eksport odbywa się za pomocą exportKey z WebCrypto: klucz publiczny jako SubjectPublicKeyInfo (SPKI), a klucz prywatny jako PKCS#8, zakodowany w base64 i zawijany co 64 znaki na wiersz wewnątrz ramek -----BEGIN PUBLIC KEY----- / -----BEGIN PRIVATE KEY-----. Przełącz przełącznik formatu na JWK, aby zamiast tego uzyskać reprezentację JSON Web Key. Ponieważ generowanie jest lokalne i offline, klucz prywatny nigdy nie jest przesyłany — skopiuj go w bezpieczne miejsce przed zamknięciem karty, ponieważ potem nie da się go odzyskać.

Najczęściej zadawane pytania

Czy klucze prywatne są wysyłane na serwer?
Nie. Klucze są generowane lokalnie przez silnik WebCrypto Twojej przeglądarki i eksportowane na stronie. Klucz prywatny nigdy nie opuszcza Twojego urządzenia i nie jest nigdzie przechowywany, więc skopiuj go w bezpieczne miejsce przed zamknięciem karty — potem nie da się go odzyskać.
Jaki rozmiar klucza lub krzywą wybrać?
RSA-2048 to powszechna baza; 3072 lub 4096 dają większy zapas kosztem wolniejszego generowania i większych kluczy. Dla EC P-256 jest szybka i szeroko obsługiwana, natomiast P-384 i P-521 oferują wyższe poziomy bezpieczeństwa. Klucze EC są znacznie mniejsze niż RSA przy porównywalnej sile.
Jaka jest różnica między wyjściem PEM a JWK?
PEM to format base64 DER zawinięty w wiersze BEGIN/END, którego oczekuje większość serwerów i OpenSSL — SPKI dla klucza publicznego i PKCS#8 dla klucza prywatnego. JWK to obiekt JSON Web Key używany przez biblioteki JavaScript oraz JOSE/JWT. Oba opisują tę samą parę kluczy.
Podpisywanie a szyfrowanie — co się zmienia?
Wybiera algorytm, dla którego tworzony jest klucz. Podpisywanie RSA używa RSASSA-PKCS1-v1_5, a szyfrowanie RSA-OAEP; podpisywanie EC używa ECDSA, a uzgadnianie klucza ECDH. Klucz wygenerowany do jednego celu jest związany z tym algorytmem, więc wybieraj na podstawie tego, jak go użyjesz.

Więcej narzędzi