RSA(由 Rivest, Shamir, Adleman 三人姓氏命名)是目前全球應用最廣泛的非對稱加密算法。與 AES 等對稱加密不同,RSA 擁有一對密鑰:公鑰(Public Key)**和**私鑰(Private Key)。
本工具支持 RSA 的兩種核心使用模式:
在使用 RSA 工具時,請務必關注您的密鑰格式,這通常是導致報錯的主要原因:
| 參數項 | 說明 | 常見標準 |
|---|---|---|
| 密鑰格式 | PKCS#1 vs PKCS#8 | PKCS#1 僅支持 RSA;PKCS#8 是通用格式。Java 通常使用 PKCS#8。 |
| 密鑰長度 | 1024 / 2048 / 4096 bit | 1024 位已不推薦;2048 位爲當前主流;4096 位安全性最高但性能消耗大。 |
| 填充模式 | PKCS1Padding / OAEP | 必須確保加解密雙方使用的填充模式完全一致。 |
Q:爲什麼 RSA 不能加密很長的文本?
A: RSA 的加密長度受密鑰位數限制。2048 位密鑰配合 PKCS#1 填充,一次最多隻能加密 245 字節的數據。如果需要處理長文本,通常的做法是:用 [AES 工具] 加密內容,再用 RSA 加密 AES 的密鑰(這種方式稱爲“混合加密”)。
Q:PKCS#1 和 PKCS#8 格式如何區分?
A: 查看密鑰的開頭文字:
-----BEGIN RSA PRIVATE KEY----------BEGIN PRIVATE KEY----- (沒有 RSA 字樣)Q:RSA 公鑰加密後的結果是唯一的嗎?
A: 不是。由於 Padding(填充)機制的存在,每次點擊加密生成的密文都會變化,但它們都能通過對應的私鑰解密出相同的明文。這是一種安全保護機制。
更多RSA基礎知識: RSA 深度解析:原理、數學基礎、編碼與安全性