Generator par kluczy RSA
Para kluczy RSA to dwie matematycznie powiązane liczby: klucz publiczny, który udostępniasz innym, oraz klucz prywatny, który chronisz. Ten generator tworzy oba klucze w standardowym kodowaniu PEM, wykorzystując kryptograficznie bezpieczne źródło losowości. Użyj go, aby uruchomić narzędzie podpisujące JWT, wygenerować certyfikat TLS dla środowiska testowego lub wydać tożsamość SSH bez korzystania z wiersza poleceń.
Jak wygenerować parę kluczy RSA
-
1
Wybierz wielkość klucza
Wybierz 2048, 3072 lub 4096 bitów. Dłuższe klucze są bardziej bezpieczne, ale wymagają dłuższego czasu na podpisanie i weryfikację.
-
2
Zainicjuj
Narzędzie generuje nowy moduł oraz prywatny eksponent za pomocą prymitywów WebCrypto.
-
3
Kopiuj lub pobierz
Pobierz klucz prywatny zapisany w formacie PEM (BEGIN PRIVATE KEY) oraz odpowiadający mu klucz publiczny (BEGIN PUBLIC KEY).
-
4
Przechowuj klucz prywatny w bezpiecznym miejscu.
Przenieś go do menedżera sekretów lub pęku kluczy; nigdy nie wklejaj go do rozmów, e-maili ani publicznego repozytorium.
Jaki rozmiar klucza powinien być użyty?
Większy rozmiar nie oznacza automatycznie lepszego. Właściwy rozmiar zależy od tego, jak długo klucz ma żyć i ile mocy procesora chcesz przeznaczyć na każdy podpis.
Wskazówki NIST w skrócie
| Rozmiar klucza | Poziom bezpieczeństwa | Typowe zastosowanie | Względny koszt podpisu |
|---|---|---|---|
| 2048 bitów | ~112 bitów | Podpisywanie JWT, krótkotrwałe certyfikaty TLS, większość API | 1x |
| 3072 bitów | ~128 bitów | Długotrwałe główne urzędy certyfikacji (CA), zgodność z FIPS > 2030 | ~3x |
| 4096 bitów | ~140 bitów | Główne urzędy o wysokim poziomie zaufania, długoterminowe podpisywanie dokumentów | ~7x |
Jak pasuje tu PEM
Klucze są opakowane w PKCS#8/SPKI i zakodowane w base64 między znacznikami -----BEGIN----- a -----END-----. To właśnie format wymagany przez wszystkie popularne biblioteki: OpenSSL, crypto w Node.js, cryptography w Pythonie, crypto/rsa w Go oraz KeyFactory w Javie.
Porady operacyjne
- Rotuj co najmniej raz w roku klucze podpisujące o szerokim zasięgu.
- Preferuj ECDSA (P-256) lub Ed25519 w nowych systemach; są szybsze, a podpisy znacznie mniejsze.
- Nigdy nie używaj tej samej pary kluczy w niepowiązanych systemach. Jeśli jeden wycieknie, zagrożone jest wszystko, co od niego zależy.
- Użyj hasła (passphrase), gdy przechowujesz klucz prywatny na dysku. Standardem jest szyfrowany PEM (
BEGIN ENCRYPTED PRIVATE KEY).
Najczęściej zadawane pytania
Tak, w przypadku większości interfejsów API oraz podpisania sesji. NIST i BSI nadal uważają, że algorytm RSA o długości klucza 2048 bitów jest akceptowany przynajmniej do roku 2030, jednak dla zastosowań wymagających dłuższego okresu działania zaleca się algorytm o długości klucza 3072 bitów.
Prywatny klucz PEM działa w połączeniu z ssh-keygen -y -f key.pem, aby wygenerować publiczny klucz ssh-rsa. W codziennym użyciu protokołu SSH zaleca się stosowanie Ed25519 – klucze są mniejsze i szybsze w obliczeniach.
Pierwszy to PKCS#1 (dostępny wyłącznie dla RSA). Drugi to PKCS#8 – obudowa niezależna od algorytmu, którą preferują współczesne biblioteki. Ten narzędzie generuje wyniki w formacie PKCS#8.
Nie jest tak. Generowanie kluczy odbywa się lokalnie za pomocą interfejsu API WebCrypto, a plik PEM jest skompilowany w pamięci przed wyświetleniem na stronie.
Powiązane narzędzia
Weryfikator sum kontrolnych
Oblicz sumę kontrolną MD5, SHA-1, SHA-256, SHA-384, SHA-512 lub CRC32 dowolnego tekstu i porównaj ją z oczekiwaną wartością, aby uzyskać jednoznaczny werdykt zgodności lub niezgodności.
Generator CSR
Wygeneruj zakodowane w PEM żądanie podpisania certyfikatu i pasujący prywatny klucz RSA. Podaj common name, pola organizacji i rozmiar klucza (2048, 3072 lub 4096 bitów).
Generator skrótów
Generuj skróty MD5, SHA-1, SHA-256, SHA-384, SHA-512 i CRC32 z tekstu, ze skrótem gotowym do skopiowania dla sum kontrolnych i porównań.
Identyfikator szyfrowania
Wklej tekst szyfrowany lub jego hasz; identyfikator sugeruje najbardziej prawdopodobne algorytmy lub formy kodowania: MD5, SHA, bcrypt, AES, RSA, Base64 oraz inne.
Identyfikator szyfrów
Wklej ciphertext, a identyfikator zasugeruje prawdopodobne kodowania/szyfry: Base64, hex, binarny, Morse, Caesar lub podstawieniowy, JWT i popularne hashe.
Generator JWT
Generuj podpisane JWT-y z dostosowanym nagłówkiem, informacjami o obciążeniu, podpisem typu HMAC lub RSA, terminem ważności oraz ograniczeniami dotyczącymi odbiorców w celach testowych.
Narzędzie jest dostępne w innych językach
- Generador de pares de claves RSA [ES]
- Générateur de paire de clés RSA [FR]
- Generator Pasangan Kunci RSA [ID]
- RSA nyckelpargenerator [SV]
- مولد زوج المفتاح RSA [AR]
- RSA鍵ペア生成器 [JA]
- RSA 키 쌍 생성기 [KO]
- RSA-sleutelpaargenerator [NL]
- Bộ tạo cặp khóa RSA [VI]
- เครื่องสร้างคู่กุญแจ RSA (RSA Key Pair Generator) [TH]
- Gerador de Par de Chaves RSA [PT]
- RSA-Schlüsselpaar-Generator [DE]
- Генератор пар ключей RSA [RU]
- RSA Anahtar Çifti Oluşturucu [TR]
- RSA密钥对生成器 [ZH]
- RSA Key Pair Generator [EN]
- Generatore di coppie di chiavi RSA [IT]