免費註冊

RSA 加密解密與金鑰生成

生成 RSA 公鑰私鑰,加密解密短訊息,簽名和驗籤,全部在瀏覽器裡完成。

關於RSA 加密解密與金鑰生成

RSA 加密解密常見於登入密碼加密傳輸、支付回撥驗籤、軟體授權校驗這些對接場景。這裡可以生成 2048、3072 或 4096 位的金鑰對,PEM 格式,私鑰是 PKCS#8,公鑰是 SPKI;老的 PKCS#1 格式金鑰(以 BEGIN RSA PRIVATE KEY 開頭)也能直接用。

加密解密支援 RSA-OAEP(SHA-256 或 SHA-1)和 PKCS#1 v1.5,後者和前端常用的 jsencrypt、PHP 的 openssl_public_encrypt 預設設定一致,登入頁用 jsencrypt 加密的密碼,可以拿私鑰在這裡解開核對。簽名和驗籤使用 SHA-256,填充可選 PKCS#1 v1.5 或 PSS。密文和簽名以 Base64 輸出。一次能加密的內容很短,長資料要配合 AES 使用。金鑰在瀏覽器裡生成,不會傳送到任何地方。用 RS256 簽名的 JWT,可以拿公鑰在JWT 解析裡驗籤。

RSA 加密解密與金鑰生成怎麼用

  1. 1
    生成或貼上金鑰

    生成 2048、3072 或 4096 位金鑰對,或貼上自己的 PEM 金鑰。

  2. 2
    選操作

    加密、解密、簽名或驗籤。

  3. 3
    選填充方式

    加解密選 RSA-OAEP(SHA-256 或 SHA-1)或 PKCS#1 v1.5,簽名選 PKCS#1 v1.5 或 PSS。

  4. 4
    複製結果

    密文和簽名都是 Base64,複製即可。

為什麼用熊仔工匠

  • 最長 4096 位

    PEM 格式,私鑰 PKCS#8,公鑰 SPKI,也能讀 PKCS#1。

  • 相容常用程式碼

    PKCS#1 v1.5 和 jsencrypt、PHP openssl_public_encrypt 的預設設定一致。

  • 簽名驗籤

    SHA-256 簽名,填充可選 PKCS#1 v1.5 或 PSS。

  • 私鑰不外傳

    在瀏覽器裡生成和使用,不上傳。

常見問題

RSA 加密解密與金鑰生成常見問題

線上生成 RSA 金鑰安全嗎?
這裡的金鑰對是在你的瀏覽器裡生成的,不會傳送到任何地方。正式環境要用的金鑰,可以開啟頁面後斷開網路再生成。
RSA 一次能加密多長的內容?
很短。2048 位金鑰用 PKCS#1 v1.5 最多 245 位元組,用 OAEP(SHA-256)最多 190 位元組,一個漢字按 UTF-8 佔 3 位元組。更長的資料先用 AES 加密,再用 RSA 加密 AES 金鑰。AES 這一步可以用AES 加密解密完成。
同樣的內容為什麼每次加密結果都不一樣?
RSA 的填充裡帶隨機數,所以每次密文都不同,但用私鑰都能解出同樣的原文。
PKCS#1 和 PKCS#8 格式的私鑰有什麼區別?
是同一把金鑰的兩種包裝。PKCS#1 以 BEGIN RSA PRIVATE KEY 開頭,PKCS#8 以 BEGIN PRIVATE KEY 開頭。這裡生成 PKCS#8,兩種都能讀。
該選 OAEP 還是 PKCS#1 v1.5?
新專案用 OAEP(SHA-256)。對方用 jsencrypt 或 PHP openssl_public_encrypt 的預設設定時,選 PKCS#1 v1.5。
把RSA 加密解密與金鑰生成分享給朋友開啟瀏覽器就能用,對方不註冊也能先試。

相關工具

HASH 雜湊加密 MD5 / SHA一次算出文字的 MD5、SHA-1、SHA-256、SHA-512 和 SM3。
TIME Unix 時間戳轉換Unix 時間戳與日期時間互轉,同時顯示本地時間和 UTC。
U+UNI Unicode 編碼轉換文字與 \u 轉義、&#; 編碼、U+ 碼點、UTF-8 位元組互轉。
AES AES 加密解密用 AES(GCM、CBC、CTR 模式)加密或解密文字。
&;HTML HTML 實體編碼轉換把文字轉成 HTML 實體,或把實體還原成文字。
JWT JWT 解析解析 JWT 的頭部和載荷,檢查過期時間和簽名。
01BIN 進位制轉換數字在二進位制、八進位制、十進位制、十六進位制等進位制之間轉換。
BASE Base32 / Base58 編碼Base32、Base58、Base85、Base16 的編碼與解碼。