UTILS.
ทำงานในเบราว์เซอร์ 100%
🗝️

ตัวสร้างคู่คีย์ RSA / EC (ส่งออก PEM)

สร้างคู่คีย์ RSA หรือ EC ในเบราว์เซอร์ของคุณด้วย WebCrypto และส่งออกคีย์สาธารณะและส่วนตัวเป็น PEM หรือ JWK คีย์ไม่เคยออกจากอุปกรณ์ของคุณ

คีย์ถูกสร้างภายในเครื่องในเบราว์เซอร์ของคุณ — คีย์ส่วนตัวไม่เคยถูกอัปโหลด

— ผลลัพธ์จะแสดงที่นี่ —
— ผลลัพธ์จะแสดงที่นี่ —

เกี่ยวกับเครื่องมือนี้

ตัวสร้างคู่คีย์ RSA / EC สร้างคู่คีย์แบบอสมมาตรภายในเบราว์เซอร์ของคุณทั้งหมดโดยใช้ WebCrypto API ดั้งเดิม (crypto.subtle.generateKey) แล้วส่งออกในรูปแบบที่คุณวางลงในไฟล์ config และโค้ดจริง ไม่มีการส่งหรือจัดเก็บบนเซิร์ฟเวอร์: คีย์ส่วนตัวถูกสร้างบนอุปกรณ์ของคุณ แสดงครั้งเดียว และถูกทิ้งเมื่อคุณออกจากหน้า สิ่งนี้ทำให้เป็นวิธีที่ปลอดภัยในการสร้างคีย์สำหรับเครื่องมือใกล้เคียง SSH การเซ็น JWT การทดลอง TLS หรือการเรียนรู้ว่ารูปแบบคีย์สาธารณะเข้ากันอย่างไร

สำหรับ RSA คุณเลือกความยาว modulus 2048, 3072 หรือ 4096 บิตด้วย public exponent มาตรฐาน 65537 และว่าคีย์นั้นสำหรับการเซ็น (RSASSA-PKCS1-v1_5, SHA-256) หรือการเข้ารหัส (RSA-OAEP, SHA-256) สำหรับคีย์ elliptic-curve คุณเลือก NIST curve — P-256, P-384 หรือ P-521 — และว่าเป็นสำหรับการเซ็น (ECDSA) หรือการตกลงคีย์ (ECDH) modulus RSA ที่ใหญ่กว่าและ curve ที่สูงกว่าแข็งแกร่งกว่าแต่สร้างช้ากว่า; โดยเฉพาะ RSA-4096 อาจใช้เวลาสองสามวินาทีในเบราว์เซอร์

การส่งออกทำด้วย exportKey ของ WebCrypto: คีย์สาธารณะเป็น SubjectPublicKeyInfo (SPKI) และคีย์ส่วนตัวเป็น PKCS#8 เข้ารหัส base64 และตัดที่ 64 อักขระต่อบรรทัดภายในกรอบ -----BEGIN PUBLIC KEY----- / -----BEGIN PRIVATE KEY----- สลับปุ่มรูปแบบเป็น JWK เพื่อรับการนำเสนอ JSON Web Key แทน เนื่องจากการสร้างเป็นแบบภายในเครื่องและออฟไลน์ คีย์ส่วนตัวจึงไม่เคยถูกอัปโหลด — คัดลอกไว้ที่ปลอดภัยก่อนปิดแท็บ เพราะไม่สามารถกู้คืนได้ในภายหลัง

คำถามที่พบบ่อย

คีย์ส่วนตัวถูกส่งไปยังเซิร์ฟเวอร์ไหม?
ไม่ คีย์ถูกสร้างภายในเครื่องโดยเอนจิน WebCrypto ของเบราว์เซอร์และส่งออกในหน้า คีย์ส่วนตัวไม่เคยออกจากอุปกรณ์ของคุณและไม่ได้จัดเก็บที่ใด ดังนั้นคัดลอกไว้ที่ปลอดภัยก่อนปิดแท็บ — ไม่สามารถกู้คืนได้ในภายหลัง
ฉันควรเลือกขนาดคีย์หรือ curve ใด?
RSA-2048 เป็นเกณฑ์พื้นฐานทั่วไป; 3072 หรือ 4096 ให้ระยะห่างมากกว่าโดยแลกกับการสร้างที่ช้ากว่าและคีย์ที่ใหญ่กว่า สำหรับ EC, P-256 เร็วและรองรับกันอย่างกว้างขวาง ในขณะที่ P-384 และ P-521 ให้ระดับความปลอดภัยที่สูงกว่า คีย์ EC เล็กกว่า RSA มากสำหรับความแข็งแกร่งที่เทียบเท่ากัน
ผลลัพธ์ PEM และ JWK ต่างกันอย่างไร?
PEM คือรูปแบบ DER ที่เข้ารหัส base64 ห่อในบรรทัด BEGIN/END ที่เซิร์ฟเวอร์และ OpenSSL ส่วนใหญ่คาดหวัง — SPKI สำหรับคีย์สาธารณะและ PKCS#8 สำหรับคีย์ส่วนตัว JWK คือออบเจกต์ JSON Web Key ที่ใช้โดยไลบรารี JavaScript และ JOSE/JWT ทั้งสองอธิบายคู่คีย์เดียวกัน
การเซ็นกับการเข้ารหัส — อะไรเปลี่ยน?
มันเลือกอัลกอริทึมที่คีย์ถูกสร้างขึ้นมาสำหรับ การเซ็น RSA ใช้ RSASSA-PKCS1-v1_5 และการเข้ารหัสใช้ RSA-OAEP; การเซ็น EC ใช้ ECDSA และการตกลงคีย์ใช้ ECDH คีย์ที่สร้างขึ้นเพื่อวัตถุประสงค์หนึ่งจะผูกกับอัลกอริทึมนั้น ดังนั้นเลือกตามวิธีที่คุณจะใช้

เครื่องมือเพิ่มเติม