Skip to content

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.

Tanpa Pelacakan Berjalan di Browser Gratis
Pasangan kunci dihasilkan di dalam browser Anda dengan Web Crypto API, dan tidak ada permintaan jaringan yang dilakukan selama pembuatan. Putuskan koneksi dan halaman ini tetap bekerja.

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.

Sidik jari kunci publik — SHA-256 atas DER SPKI
JWK (JSON Web Key)
JWK privat — jangan pernah publikasikan yang ini
 
JWK publik
 

Buat pasangan kunci sejenis dengan OpenSSL

Ditinjau untuk kebenaran RFC 5958/5208 (PKCS#8), RFC 8017 (PKCS#1), RFC 8410 (Ed25519), dan pengodean PEM RFC 7468, serta untuk perilaku Web Crypto API pada RSA, ECDSA, dan Ed25519. — Tim Tooling Keamanan Go Tools · Aug 10, 2026

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. 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. 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. 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. 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. 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.

✗ Salah
-----BEGIN PUBLIC KEY-----
✓ Benar
-----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.

✗ Salah
-----BEGIN RSA PRIVATE KEY-----
✓ Benar
-----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.

✗ Salah
-----END PRIVATE KEY-----[EOF]
✓ Benar
-----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.

✗ Salah
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuvUHLjyK9zje2aaNIni eSccN1uleXFRBb1g2TN6bk
✓ Benar
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.

✗ Salah
alg: RS256, key: 8f3a9c2e1b7d
✓ Benar
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.

✗ Salah
-----BEGIN PUBLIC KEY-----
✓ Benar
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.
KontainerHeader PEMMemuatDi mana Anda menemuinya
PKCS#8BEGIN PRIVATE KEYSemua algoritmaWeb Crypto, JDK, Go, .NET — mayoritas pustaka modern
PKCS#1BEGIN RSA PRIVATE KEYHanya RSAKeluaran tradisional OpenSSL, sebagian gateway pembayaran, perkakas Ruby dan Perl lama
SPKI / X.509BEGIN PUBLIC KEYSemua algoritma, bagian publikKunci publik yang diharapkan hampir semua pustaka
PKCS#1 publikBEGIN RSA PUBLIC KEYHanya RSA, bagian publikPerkakas RSA warisan
JWKtidak ada — ia JSONSemua algoritmaEndpoint JWKS, discovery OIDC, pustaka JOSE
Untuk mengonversi berkas yang sudah Anda miliki, openssl pkcs8 -topk8 -nocrypt -in pkcs1.pem -out pkcs8.pem berjalan satu arah dan openssl rsa -traditional -in pkcs8.pem -out pkcs1.pem ke 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?
Kuncinya dibuat oleh Web Crypto API di browser Anda sendiri, dan halaman ini tidak melakukan permintaan jaringan apa pun selama proses pembuatan — Anda bisa memantau panel Network, atau memutus koneksi dan melihat bahwa pembuatan tetap berhasil. Perlu jelas soal apa yang ditunjukkan hal itu dan apa yang tidak: ia membuktikan halaman ini tidak butuh server, tetapi bukan bukti terhadap skrip yang dikompromikan, karena JavaScript-nya diambil ulang dari server kami pada setiap kunjungan. Risiko yang tersisa adalah risiko browser, bukan risiko jaringan — ekstensi berbahaya dapat membaca halaman dan clipboard Anda, dan siapa pun yang punya akses ke mesin itu dapat membaca berkas yang diunduh. Untuk kunci yang melindungi sistem produksi, buatlah di host yang akan memakainya; perintah OpenSSL di bawah melakukan persis itu. Halaman ini adalah alat yang tepat untuk pengembangan, pengujian, belajar, dan di mana pun kunci hasil browser masih dapat diterima.
Apa perbedaan PKCS#8 dan PKCS#1?
Keduanya adalah dua wadah untuk kunci RSA yang sama. PKCS#1, ditandai BEGIN RSA PRIVATE KEY, memuat angka-angka RSA secara langsung dan hanya ada untuk RSA. PKCS#8, ditandai BEGIN PRIVATE KEY, membungkus angka yang sama itu dalam identifier algoritma, sehingga satu format dapat membawa RSA, ECDSA, dan Ed25519 sekaligus. Mayoritas pustaka modern mengharapkan PKCS#8 — JDK, khususnya, hanya membaca PKCS#8 tanpa pustaka tambahan — sedangkan sejumlah gateway pembayaran dan perkakas era OpenSSL lama masih mensyaratkan PKCS#1. Mengganti sakelar di halaman ini meng-encode ulang kunci yang sudah tampil di layar, jadi tidak ada informasi yang ditambahkan atau hilang dan sidik jarinya tetap sama.
Bagaimana mengonversi kunci PKCS#1 ke PKCS#8, atau sebaliknya?
Ganti sakelar struktur PEM di halaman ini dan kunci yang sama dikeluarkan ulang dalam kontainer satunya. Untuk berkas yang sudah Anda miliki, OpenSSL mengonversinya secara lokal: openssl pkcs8 -topk8 -nocrypt -in pkcs1.pem -out pkcs8.pem mengubah berkas BEGIN RSA PRIVATE KEY menjadi BEGIN PRIVATE KEY, dan openssl rsa -traditional -in pkcs8.pem -out pkcs1.pem berjalan ke arah sebaliknya. Tidak satu pun arah menambah atau membuang materi kunci; hanya pembungkusnya yang berubah, itulah sebabnya kedua berkas menggambarkan kunci yang identik dan menghasilkan sidik jari yang identik.
Bagaimana cara mendapatkan kunci publik dari kunci privat RSA?
Kunci publik dapat diturunkan dari kunci privat, tidak pernah sebaliknya. Halaman ini menampilkan kedua bagian sekaligus, jadi tidak ada yang perlu diturunkan. Untuk kunci privat yang sudah ada di disk, openssl pkey -in private.pem -pubout -out public.pem menuliskan berkas BEGIN PUBLIC KEY pasangannya. Begitu pula cara Anda memeriksa apakah sepasang kunci memang cocok — hasilkan ulang bagian publiknya lalu bandingkan dengan berkas yang Anda terima.
Sebaiknya saya pilih RSA atau Ed25519?
Pilih Ed25519 jika tidak ada yang memaksa Anda. Ia mencapai keamanan setara RSA 3072 dengan kunci 32 byte, menandatangani lebih cepat, dan tidak punya parameter yang bisa salah dikonfigurasi. Pilih RSA ketika mitra, otoritas sertifikat, atau pustaka lama mengharuskannya — hal yang masih umum di sistem korporat dan pembayaran. ECDSA berada di antara keduanya dan didukung luas di TLS.
Apakah RSA 2048 bit masih cukup kuat?
Ya, untuk sebagian besar keperluan hari ini. NIST menilai RSA 2048 bit setara kekuatan keamanan 112 bit dan membawanya hingga 2030 dalam SP 800-57; 3072 bit mencapai kekuatan 128 bit dan itulah yang ditunjuk NIST untuk setelahnya. Jadi: 2048 untuk apa pun yang akan Anda rotasi dalam beberapa tahun, 3072 atau 4096 untuk kunci yang Anda harapkan masih dipakai pada 2030-an atau ketika otoritas sertifikat mensyaratkannya. Ongkos kunci yang lebih besar adalah penandatanganan lebih lambat dan tanda tangan lebih besar, bukan keamanan yang lebih lemah.
Bisakah saya memakai kunci ini untuk menandatangani JWT?
Bisa. Kunci RSA bekerja dengan RS256, RS384, dan RS512 serta varian PSS; ECDSA P-256 berpasangan dengan ES256; dan Ed25519 adalah algoritma EdDSA. Tandatangani dengan kunci privat lalu publikasikan kunci publik agar verifier dapat memeriksa tanda tangan tanpa bisa membuatnya. Satu catatan bila Anda memakai panel JWK alih-alih PEM: Web Crypto menandai JWK RSA dengan alg RS256, dan pustaka yang ketat menolak memuatnya untuk PS256 atau RS512 — hapus anggota alg, atau gunakan PEM saja. JWT Encoder kami menerima kunci ini, dan decoder-nya menampilkan isi token yang dihasilkan.
Bisakah ini membuat kunci SSH?
Tidak secara langsung. OpenSSH punya berkas kunci privatnya sendiri, dan halaman ini tidak menuliskannya. Kunci RSA dari sini tetap bisa dipakai: ssh-keygen -y -f rsa-2048-private.pem > id_rsa.pub menurunkan baris authorized_keys dari berkas yang Anda unduh. Kunci Ed25519 dari sini tidak bisa, karena OpenSSH menolak bentuk PKCS#8-nya. Untuk akses SSH, jawaban yang lebih baik tetap ssh-keygen -t ed25519 di mesin yang membutuhkan kunci itu, karena dengan begitu Anda tidak memindahkan kunci privat sama sekali. Untuk penandatanganan JWT, penandatanganan rilis CI, dan verifikasi webhook, kunci PKCS#8 dari halaman ini persis seperti yang diinginkan perkakas tersebut.
Bisakah saya melindungi kunci privat dengan passphrase?
Tidak di sini. PKCS#8 terenkripsi memerlukan langkah derivasi kunci yang tidak diekspos Web Crypto API, sehingga menerapkannya berarti meracik kriptografi sendiri di JavaScript. Tambahkan passphrase secara lokal saja: openssl pkcs8 -topk8 -in private.pem -out encrypted.pem membaca berkas yang Anda unduh dan meminta passphrase.
Sidik jari itu untuk apa?
Ia adalah digest SHA-256 dari struktur kunci publik, cukup pendek untuk dibandingkan lewat suara atau pesan obrolan. Ketika Anda mengirimkan kunci publik kepada seseorang, membandingkan sidik jari lewat jalur terpisah memastikan bahwa yang sampai memang yang Anda kirim. Ia hanya mengidentifikasi kunci publik dan tidak mengungkapkan apa pun tentang bagian privatnya. Perhatikan bahwa ini bukan angka yang dicetak ssh-keygen -l: OpenSSH menghitung hash atas format kabelnya sendiri alih-alih struktur SPKI, sehingga keduanya tidak pernah cocok untuk kunci yang sama.