RSA 金鑰對產生指南:公鑰加密與私鑰簽章的完整流程
加密編碼(更新於 2026年6月11日)
什麼是 RSA 金鑰對
RSA 是非對稱加密演算法,使用一對金鑰:
| 金鑰 | 用途 | 分發方式 |
|---|---|---|
| 公鑰 (Public Key) | 加密 / 驗章 | 可公開分發 |
| 私鑰 (Private Key) | 解密 / 簽章 | 僅自己持有 |
核心原則:公鑰加密的資料只有私鑰能解,私鑰簽章的資料公鑰能驗。
金鑰長度選擇
| 長度 | 安全等級 | 適用場景 |
|---|---|---|
| 1024 位 | ❌ 已不安全 | 遺留系統 |
| 2048 位 | ✅ 基本安全 | 日常使用 |
| 3072 位 | ✅ 較高安全 | 中等敏感資料 |
| 4096 位 | ✅ 高安全 | 高敏感資料 / 長期金鑰 |
產生 4096 位金鑰耗時約為 2048 位的 4-8 倍,加解密也更慢,請按需選擇。
產生金鑰對:步驟詳解
第一步:開啟 RSA 金鑰對工具
造訪 RSA 金鑰對工具,選擇金鑰長度(推薦 2048 或 4096)。
第二步:產生金鑰對
點擊「產生金鑰對」,工具會自動產生:
- 公鑰:以
-----BEGIN PUBLIC KEY-----開頭的 PEM 格式文字 - 私鑰:以
-----BEGIN PRIVATE KEY-----開頭的 PEM 格式文字
第三步:儲存金鑰
公鑰 → 傳送給需要加密資料給你的對方
私鑰 → 安全儲存,切勿洩露(不要提交到 Git!)
PEM 格式說明
PEM 是 Base64 編碼的金鑰文字,常見格式:
-----BEGIN PUBLIC KEY----- ← PKCS#8 公鑰
MIIBIjANBgkqhkiG9w0BAQEFAAOC...
-----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY----- ← PKCS#1 私鑰
MIIEpAIBAAKCAQEA0d7...
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY----- ← PKCS#8 私鑰
MIIEvgIBADANBgkqhkiG9w0BAQEF...
-----END PRIVATE KEY-----
PKCS#8 是通用格式,PKCS#1 是 RSA 專用格式,大多數現代系統優先使用 PKCS#8。
公鑰加密 + 私鑰解密
使用 RSA 加解密工具:
- 將明文貼到輸入框
- 選擇「公鑰加密」
- 貼上對方的公鑰
- 點擊加密,得到密文
- 對方收到密文後,用私鑰解密即可還原
私鑰簽章 + 公鑰驗章
簽章用於證明「這則訊息確實是我發的」:
- 用 RSA 加解密工具 選擇「私鑰簽章」
- 輸入訊息內容和私鑰
- 產生簽章值
- 對方用你的公鑰驗證簽章,確認訊息未被竄改
RSA vs AES:何時用哪個
| 場景 | 推薦 | 原因 |
|---|---|---|
| 大檔案加密 | AES | RSA 太慢,僅適合小資料 |
| 金鑰交換 | RSA | 用公鑰加密 AES 金鑰 |
| 數位簽章 | RSA | 非對稱特性天然適合 |
| JWT Token | RSA | 伺服器私鑰簽,客戶端公鑰驗 |
實際中常組合使用:RSA 傳輸 AES 金鑰,AES 加密實際資料(混合加密)。
常見問題
| 問題 | 原因 | 解決 |
|---|---|---|
| 解密失敗 | 金鑰不匹配 | 確認公私鑰是同一對 |
| 資料太長錯誤 | RSA 有長度限制 | 改用 AES 或分段加密 |
| 格式解析錯誤 | PEM 頭尾缺失 | 檢查是否完整複製 |
| 產生很慢 | 4096 位金鑰 | 正常,可先用 2048 位 |
總結
RSA 金鑰對是非對稱加密的基礎。掌握公鑰加密、私鑰簽章的流程,理解金鑰長度的安全含義,是安全開發的關鍵技能。RSA 金鑰對工具 和 RSA 加解密工具 讓你在瀏覽器中完成全流程操作。
#RSA#密钥对#非对称加密#公钥#私钥