Generator Pasangan Kunci RSA Gratis — ECDSA, Ed25519
Buat pasangan kunci RSA online — kunci privat tak pernah keluar dari browser. RSA 2048/4096, ECDSA, Ed25519, PEM PKCS#8 atau PKCS#1, plus JWK dan sidik jari.
PKCS#8 (BEGIN PRIVATE KEY) adalah default modern dan yang diharapkan JDK. PKCS#1 (BEGIN RSA PRIVATE KEY) adalah bentuk tradisional OpenSSL yang masih diwajibkan sebagian gateway. Mengganti sakelar meng-encode ulang kunci yang sama.
Rahasiakan ini. Siapa pun yang memegangnya bisa menyamar sebagai Anda.
Buat pasangan kunci sejenis dengan OpenSSL
Tim kami memverifikasi konversi PKCS#8 ke PKCS#1 byte demi byte terhadap keluaran rujukan dari modul crypto Node, sehingga kunci yang diekspor di sini identik dengan yang akan dihasilkan OpenSSL dari materi yang sama.
Apa Itu Generator Kunci RSA?
Generator kunci RSA menghasilkan sepasang kunci yang terhubung secara matematis: kunci privat yang Anda simpan dan kunci publik yang Anda bagikan. Apa pun yang ditandatangani dengan bagian privat dapat diverifikasi dengan bagian publik, dan hanya bagian publik yang aman untuk dipublikasikan. Asimetri itulah inti persoalannya — ia memungkinkan verifier memeriksa tanda tangan Anda tanpa memperoleh kemampuan memalsukannya, sesuatu yang tidak pernah bisa ditawarkan secret bersama.
Generator ini berjalan di dalam browser Anda melalui Web Crypto API, sehingga kunci privat dibuat di dalam tab dan halaman tidak melakukan permintaan jaringan apa pun selama proses pembuatan. Selain RSA, ia juga membuat pasangan ECDSA dan Ed25519, yang melayani tujuan sama dengan kunci jauh lebih pendek: kunci privat Ed25519 berukuran 48 byte dalam PKCS#8, sedangkan kunci RSA 2048 bit melewati 1,2 KB.
Yang biasanya membuat orang tersandung bukan matematikanya, melainkan pembungkusnya. Kunci yang sama bisa ditulis sebagai PKCS#8, PKCS#1, SPKI, atau JWK, dan pustaka yang menolak salah satunya sering menerima yang lain tanpa pesan yang lebih jelas daripada galat penguraian. Tabel di bawah memetakan tiap kontainer ke ekosistem yang mengharapkannya.
// Verify a downloaded key pair matches, using OpenSSL: openssl pkey -in rsa-2048-private.pem -pubout | diff - rsa-2048-public.pem // No output means the public key really belongs to that private key.
Fitur Utama
Dibuat di Browser Anda
Kunci berasal dari Web Crypto API di tab Anda sendiri, dan halaman tidak melakukan permintaan jaringan apa pun selama pembuatan. Matikan koneksi dan ia tetap bekerja, yang menunjukkan alat ini tidak butuh server untuk melakukan tugasnya.
RSA, ECDSA, dan Ed25519
RSA 2048, 3072, dan 4096; ECDSA pada P-256, P-384, dan P-521; serta Ed25519, semuanya dari satu halaman dengan opsi ekspor yang sama.
Keluaran PKCS#8 dan PKCS#1
Beralih antara BEGIN PRIVATE KEY dan tata letak tradisional BEGIN RSA PRIVATE KEY tanpa menyentuh OpenSSL. Sakelarnya meng-encode ulang kunci yang sudah tampil di layar, jadi ia tetap kunci yang sama.
Ekspor JWK
Kedua bagian tersedia sebagai JSON Web Key. JWK publik adalah yang masuk ke dokumen JWKS atau ke verifier JOSE; JWK privat hanya untuk penandatangan Anda dan tidak boleh dipublikasikan.
Sidik Jari SHA-256
Setiap pasangan disertai sidik jari kunci publiknya sehingga Anda dapat memastikan lewat jalur terpisah bahwa kedua sisi memegang kunci yang sama.
Perintah OpenSSL yang Sepadan
Perintah untuk membuat kunci sejenis secara lokal ditampilkan di bawah keluaran, jadi Anda bisa pindah ke command line kapan pun Anda mau.
Unduhan dengan Nama yang Masuk Akal
Berkas tersimpan sebagai rsa-2048-private.pem dan rsa-2048-public.pem, bukan nama unduhan generik yang harus Anda ganti dulu.
Tanpa Akun, Tanpa Batas Penggunaan
Tidak ada server yang terlibat, jadi tidak ada yang perlu didaftarkan dan tidak ada kuota yang bisa habis.
Contoh Terpandu
Pasangan Ed25519, ditampilkan utuh
Algoritma: Ed25519
-----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIA2HJVU1qChbOJN8XksXVhyD0IjYVt0UU6Mwz814rOFf -----END PRIVATE KEY----- -----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEAV5uB7UaPJrtncx3SXNtNzn1ZXjF1ApwvzBZ8nFzT5eU= -----END PUBLIC KEY-----
Kunci privat Ed25519 berukuran 48 byte dalam PKCS#8 dan kunci publiknya 44 byte, sehingga tiap PEM hanya memuat satu baris base64. Ini pasangan demonstrasi sekali pakai — hasilkan milik Anda sendiri alih-alih menyalinnya.
Header PKCS#8 dan PKCS#1 berbeda
Algoritma: RSA 2048, struktur diganti
PKCS#8: -----BEGIN PRIVATE KEY----- PKCS#1: -----BEGIN RSA PRIVATE KEY-----
Kunci yang sama, dua pembungkus. PKCS#8 menambahkan identifier algoritma di sekeliling struktur RSA, itulah sebabnya ia bekerja untuk setiap algoritma sedangkan PKCS#1 hanya ada untuk RSA. Sakelarnya meng-encode ulang kunci yang sudah tampil di layar, jadi sidik jarinya tidak berubah.
Kunci publik RSA 2048
Algoritma: RSA 2048
-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuvUHLjyK9zje2aaNIni eSccN1uleXFRBb1g2TN6bk/fbpPCGDyh71m73oB9Bk8+fKVkSThXyWTtpgblB7pX iQBtTvSWVZGHprkLgMGkU2Yw8Z43m1WpoRuYyXNFe92S5viIdVuKTj/VEUuEpzHd ffWMIUw70LaUdTP04iQdkNVeS3M6VHkpTwsPSQfsFSwObtLVNy2Lf+ODwJRqCk2r C749hgKqBdJqkcIj49R7UP4SMQ/9V3yy8DFMrIcgsjC4tHwlQSCGeXNxTNlapGSa ke55LUR83FASryVJRbUs678SCZSFkyGcT0qLZ/olu/e7Jj2lB0Qy/SJawkrs9hPE 4QIDAQAB -----END PUBLIC KEY-----
Awalan MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A adalah identifier algoritma rsaEncryption, dan dari situlah Anda bisa mengenali kunci SPKI RSA sekali lihat.
Kunci publik sebagai JWK
Algoritma: Ed25519, panel JWK
{
"key_ops": [
"verify"
],
"ext": true,
"alg": "Ed25519",
"crv": "Ed25519",
"x": "V5uB7UaPJrtncx3SXNtNzn1ZXjF1ApwvzBZ8nFzT5eU",
"kty": "OKP"
} Ini hasil ekspor apa adanya, termasuk anggota key_ops dan ext yang selalu ditambahkan Web Crypto. Entri JWKS tidak menginginkan keduanya — hapus saja, lalu tambahkan kid dan use agar verifier dapat memilih kunci yang tepat saat rotasi. Ed25519 masuk ke tipe kunci OKP; kunci RSA muncul sebagai kty RSA dengan anggota n dan e.
Sidik jari SHA-256
Algoritma: Ed25519
SHA256(SPKI) = KAXVxapxpG4zLsTVMpPafovT+X1NLWc8fsOXqtrb59o=
Digest SHA-256 dari struktur kunci publik, cukup pendek untuk dibacakan lewat telepon. Perhatikan bahwa ini bukan nilai yang dicetak ssh-keygen — OpenSSH menghitung hash atas format kabelnya sendiri, sehingga keduanya tidak pernah sama untuk kunci yang sama.
Cara Menggunakan Generator Kunci RSA
- 1
Pilih algoritma
RSA mencakup rentang sistem lama yang paling luas. ECDSA memberi kekuatan setara dengan kunci yang jauh lebih kecil. Ed25519 adalah pilihan modern untuk pekerjaan penandatanganan baru.
- 2
Tentukan ukuran kunci
RSA 2048 memenuhi panduan saat ini; 3072 dan 4096 menambah margin untuk kunci berumur panjang. ECDSA menyediakan P-256, P-384, dan P-521. Ed25519 hanya punya satu ukuran tetap.
- 3
Pilih struktur PEM
PKCS#8 menghasilkan BEGIN PRIVATE KEY dan bekerja hampir di mana saja, termasuk di JDK. Beralihlah ke PKCS#1 hanya ketika ada sesuatu yang secara khusus menuntut BEGIN RSA PRIVATE KEY.
- 4
Salin atau unduh kedua bagian
Kunci privat masuk ke secrets manager Anda. Kunci publik diberikan kepada siapa pun yang memverifikasi tanda tangan Anda. Jangan pernah mengirim bagian privat ke mana pun.
- 5
Verifikasi sidik jarinya
Bandingkan sidik jari SHA-256 lewat jalur terpisah untuk memastikan pihak lain memasang kunci publik yang benar-benar Anda hasilkan.
Kesalahan Format Kunci yang Umum
Menempelkan kunci publik di tempat kunci privat
Penandatanganan membutuhkan bagian privat. Pustaka yang menerima BEGIN PUBLIC KEY padahal mengharapkan kunci privat biasanya melaporkan galat penguraian yang tidak membantu alih-alih menyebut masalah sebenarnya.
-----BEGIN PUBLIC KEY-----
-----BEGIN PRIVATE KEY-----
Struktur PEM yang salah untuk pustakanya
Hanya sedikit ekosistem yang membaca tata letak RSA tradisional saja — keluaran -traditional milik OpenSSL sendiri, sebagian SDK gateway pembayaran, perkakas Ruby dan Perl lama. Mayoritas pustaka modern, dan JDK khususnya, mengharapkan PKCS#8. Ganti sakelar struktur PEM alih-alih berburu perintah konversi.
-----BEGIN RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
Kehilangan baris baru di akhir berkas
Berkas PEM diakhiri baris baru setelah pembatas terakhir. Menyalin lewat kolom formulir yang memangkas spasi menghasilkan berkas yang ditolak mentah-mentah oleh sebagian parser — dan karena karakter yang hilang itu tak terlihat, berkasnya tampak benar di editor.
-----END PRIVATE KEY-----[EOF]
-----END PRIVATE KEY-----↵[EOF]
Satu karakter hilang di perjalanan
Yang merusak PEM adalah karakter yang hilang, tersisip, atau tergantikan, bukan lebar barisnya — mayoritas parser menerima pembungkusan apa pun. Salinan lewat aplikasi obrolan atau kolom formulir dapat diam-diam mengubah baris baru menjadi spasi, dan base64 tidak memberi petunjuk karakter mana yang keliru; kuncinya sekadar gagal dimuat. Gunakan tombol salin, jangan menyeleksi manual.
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuvUHLjyK9zje2aaNIni eSccN1uleXFRBb1g2TN6bk
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuvUHLjyK9zje2aaNIni eSccN1uleXFRBb1g2TN6bk
Memakai secret HS256 padahal yang dikonfigurasi RS256
HS256 memakai satu secret bersama; RS256 memakai pasangan kunci. Memberi string acak ke penandatangan RS256 gagal di tahap penguraian. Buat pasangannya di sini, atau gunakan Generator JWT Secret kami jika yang Anda maksud adalah HS256.
alg: RS256, key: 8f3a9c2e1b7d
alg: RS256, key: -----BEGIN PRIVATE KEY-----
Menempelkan PEM ke authorized_keys
Kunci publik SSH adalah format satu baris ssh-ed25519 AAAA… milik OpenSSH, bukan blok PEM, sehingga menempelkan kunci publik dari halaman ini ke authorized_keys tidak akan bekerja. Untuk kunci RSA, Anda bisa menurunkan baris yang benar secara lokal dengan ssh-keygen -y; untuk akses SSH pada umumnya, membuat kunci di mesin tujuan tetap lebih baik.
-----BEGIN PUBLIC KEY-----
ssh-keygen -y -f rsa-2048-private.pem > id_rsa.pub
Siapa yang Menggunakan Alat Ini
- Menandatangani JWT dengan RS256 atau EdDSA
- Algoritma JWT asimetris membutuhkan pasangan kunci, bukan secret bersama. Tandatangani dengan kunci privat, publikasikan kunci publik, dan verifier tidak pernah memegang sesuatu yang memungkinkan mereka mencetak token. JWT Encoder kami menerima kunci yang dihasilkan halaman ini.
- Menandatangani Webhook dan Rilis
- Publikasikan kunci publik sekali, tandatangani setiap payload dengan kunci privat, dan konsumen dapat memverifikasi keasliannya tanpa kredensial bersama yang bisa bocor.
- Pengembangan Lokal dan Pengujian
- Rangkaian pengujian yang menguji verifikasi tanda tangan membutuhkan pasangan kunci sekali pakai. Membuatnya di sini lebih cepat daripada mengingat-ingat perintah OpenSSL.
- Memahami Bentuk Sebuah Pasangan Kunci
- Beralih antar algoritma dan struktur PEM secara berdampingan membuat perbedaannya konkret dengan cara yang tidak dicapai lewat membaca spesifikasi.
- Menyiapkan Endpoint JWKS
- JWK publik langsung masuk ke array keys untuk dokumen discovery OpenID Connect. Tambahkan kid agar verifier dapat memilihnya saat rotasi, dan jauhkan JWK privat dari berkas itu.
- Bermigrasi Meninggalkan RSA
- Buat pengganti Ed25519 berdampingan dengan RSA aslinya dan bandingkan ukurannya sebelum Anda memutuskan pindah.
- Memperbaiki Ketidakcocokan Format
- Ketika pustaka menolak kunci dengan galat penguraian, mengeluarkannya ulang dalam struktur PEM yang satunya biasanya sudah menjadi keseluruhan solusinya.
Format PEM dan Cara Kerja Generator
- Kontainer Mana untuk Apa
- Satu kunci, lima pembungkus. Memilih yang keliru adalah penyebab paling umum kunci ditolak, dan pesan galatnya jarang lebih spesifik daripada kegagalan penguraian.
Untuk mengonversi berkas yang sudah Anda miliki,Kontainer Header PEM Memuat Di mana Anda menemuinya PKCS#8 BEGIN PRIVATE KEY Semua algoritma Web Crypto, JDK, Go, .NET — mayoritas pustaka modern PKCS#1 BEGIN RSA PRIVATE KEY Hanya RSA Keluaran tradisional OpenSSL, sebagian gateway pembayaran, perkakas Ruby dan Perl lama SPKI / X.509 BEGIN PUBLIC KEY Semua algoritma, bagian publik Kunci publik yang diharapkan hampir semua pustaka PKCS#1 publik BEGIN RSA PUBLIC KEY Hanya RSA, bagian publik Perkakas RSA warisan JWK tidak ada — ia JSON Semua algoritma Endpoint JWKS, discovery OIDC, pustaka JOSE openssl pkcs8 -topk8 -nocrypt -in pkcs1.pem -out pkcs8.pemberjalan satu arah danopenssl rsa -traditional -in pkcs8.pem -out pkcs1.pemke arah sebaliknya. - Keacakan Berasal dari Sistem Operasi
- Web Crypto menyemai pembangkitan kunci dari sumber entropi platform — getrandom di Linux, dan CSPRNG sistem di Windows serta macOS. Ini kelas sumber yang sama dengan yang dipakai OpenSSL, bukan generator pseudo-acak JavaScript.
- Pembangkitan Tidak Membekukan Halaman
- crypto.subtle.generateKey bersifat asinkron, dan pada mesin browser utama pencarian bilangan prima terjadi di luar thread utama, sehingga antarmuka tetap responsif saat modulus 4096 bit sedang dicari. Spinner tetap ditampilkan, karena lama pencarian itu bergantung pada keberuntungan.
- PKCS#8 Membungkus PKCS#1
- PrivateKeyInfo PKCS#8 terdiri atas nomor versi, identifier algoritma, dan sebuah OCTET STRING. Untuk kunci rsaEncryption tanpa enkripsi, OCTET STRING itu berisi RSAPrivateKey PKCS#1 yang lengkap, dan persis begitulah halaman ini mengonversi keduanya tanpa menurunkan ulang apa pun.
- Kunci Publik Memakai SubjectPublicKeyInfo
- BEGIN PUBLIC KEY adalah SubjectPublicKeyInfo X.509: identifier algoritma ditambah sebuah BIT STRING. Isi bit itu bergantung pada algoritmanya — untuk RSA berupa RSAPublicKey PKCS#1, itulah sebabnya BEGIN RSA PUBLIC KEY lebih pendek; untuk ECDSA berupa titik kurva tak terkompresi, dan untuk Ed25519 kunci mentah 32 byte.
- Eksponen Publiknya 65537
- Setiap kunci RSA di sini memakai e = 65537, ditulis 0x010001. Ia cukup besar untuk menghindari serangan eksponen kecil dan hanya punya dua bit yang menyala, sehingga verifikasi memerlukan 16 pengkuadratan dan satu perkalian.
- Sidik Jari Menghitung DER, Bukan PEM
- Sidik jari SHA-256 diambil atas SubjectPublicKeyInfo biner. Mengambilnya dari teks base64 akan membuatnya berubah setiap kali pembungkusan barisnya berubah. Padanan lokalnya adalah
openssl pkey -in private.pem -pubout -outform DER | openssl dgst -sha256 -binary | openssl base64.
Praktik Terbaik Pengelolaan Kunci
- Buat Kunci di Tempat Kunci Itu Dipakai
- Kunci privat yang melintasi jaringan telah terekspos ke setiap hop di sepanjang jalan. Membuatnya di browser menjauhkan kunci itu sendiri dari jaringan, meskipun kode halamannya tetap datang lewat jaringan; membuatnya di host tujuan bahkan menghapus langkah penyalinan. Untuk kunci yang melindungi sistem produksi, pilih host tujuan.
- Utamakan Ed25519 Kecuali Ada yang Mengharuskan RSA
- Ed25519 memberi keamanan kuat dalam kunci 32 byte dengan penandatanganan cepat dan tanpa pilihan parameter yang bisa salah. Gunakan RSA ketika mitra atau pustaka lama tidak memberi Anda pilihan lain.
- Perlakukan 2048 Bit sebagai Batas Bawah
- NIST SP 800-131A melarang RSA di bawah 2048 bit untuk pembuatan tanda tangan sejak 2013, dan tidak ada otoritas sertifikat publik yang mau menerbitkan untuk kunci yang lebih kecil. Pilih 3072 atau 4096 untuk kunci yang diperkirakan bertahan bertahun-tahun.
- Jangan Pernah Commit Kunci Privat
- Simpan kunci privat di secrets manager atau variabel lingkungan yang dimuat saat runtime. Begitu sebuah kunci masuk ke repositori, menggantinya adalah satu-satunya respons yang aman.
- Rotasi Terjadwal, Bukan Hanya Setelah Insiden
- Publikasikan kunci publik baru dengan key ID sebelum memensiunkan yang lama agar verifier dapat menerima keduanya selama masa tumpang tindih. Rotasi yang rutin dilatih adalah rotasi yang berhasil saat keadaan menekan.
Pertanyaan yang Sering Diajukan
Apakah aman membuat kunci privat di sebuah situs web?
Apa perbedaan PKCS#8 dan PKCS#1?
Bagaimana mengonversi kunci PKCS#1 ke PKCS#8, atau sebaliknya?
Bagaimana cara mendapatkan kunci publik dari kunci privat RSA?
Sebaiknya saya pilih RSA atau Ed25519?
Apakah RSA 2048 bit masih cukup kuat?
Bisakah saya memakai kunci ini untuk menandatangani JWT?
Bisakah ini membuat kunci SSH?
Bisakah saya melindungi kunci privat dengan passphrase?
Sidik jari itu untuk apa?
Alat Terkait
Lihat semua alat →Alat Dekripsi AES — Kompatibel OpenSSL & CryptoJS
Alat Keamanan
Dekripsi AES online — GCM/CBC/CTR, frasa sandi atau kunci mentah, otomatis mendeteksi format OpenSSL & CryptoJS "U2FsdGVkX1". 100% di browser, kunci tidak pernah meninggalkan halaman.
Alat Enkripsi AES — GCM, CBC & CTR
Alat Keamanan
Enkripsi AES online gratis — AES-128/192/256, GCM/CBC/CTR, frasa sandi (PBKDF2) atau kunci mentah. Berjalan 100% di browser Anda; tidak ada yang diunggah.
Generator & Verifier Hash Bcrypt
Alat Keamanan
Buat dan verifikasi hash kata sandi bcrypt online — biaya yang dapat diatur, prefiks $2b$/$2a$/$2y$. 100% di browser Anda; kata sandi tidak pernah diunggah.
Generator HMAC & Verifikator Tanda Tangan
Alat Keamanan
Generator dan verifikator HMAC online gratis. Hitung HMAC-SHA256/SHA1/SHA384/SHA512 dengan kunci Teks, Hex, atau Base64 dan output Hex/Base64/Base64URL. 100% di browser Anda — kunci tidak pernah meninggalkan halaman.
JWT Decoder
Alat Keamanan
Dekode token JWT online dengan dekoder JWT gratis kami. Periksa header, payload, tanda tangan, kedaluwarsa, dan klaim secara instan. 100% browser — token Anda tidak meninggalkan perangkat. Tanpa pendaftaran, tanpa pelacakan.
JWT Encoder & Generator
Alat Keamanan
Generator & encoder JWT online gratis. Susun header dan payload, tandatangani dengan HS256, RS256, atau ES256 secara instan. 100% di browser — secret dan key Anda tidak pernah meninggalkan perangkat.