2026年3月22日

碼農二三事之加密~非對稱加密~RSA

 前言:

在我百寶箱中,使用頻率也很高的,就是RSA加解密。

程式碼:

這份程式碼裡面包括多個程式語言的RSA實做,也是我自己常用的百寶箱工具。

https://gitlab.com/ycfunet/my_rsa_code_test

說明:

RSA包括幾種功能,這裡只說加解密,不說憑證、簽章。
AES是對稱式加解密,就是固定用密碼把字串加密和解密,但一個情境是,我不能讓人知道我的密碼(金鑰),但我要能讓別人能加密,我能解密,這就是非對稱加解密,常見的是RSA。

RSA是RSA公司的產品,因為是公司產品,使用簡單,不用管細節,是業界標準。

RSA就3個Function:
  • GenerateKey: 產生一組公私鑰,公鑰給別人加密,私鑰自己留著解密。
  • Encrypt: 用公鑰加密明文成密文。
  • Decrypt: 用私鑰解密密文成明文。
咦...就這樣...對...就這樣,簡單吧 🤣。

公私鑰格式說明:

比較要注意的知識點是公私鑰的格式,一般有2種,PEM和XML。
c#用XML,其他通常用PEM,PEM以 -----BEGIN...----- 和 -----END...----- 當作開頭標記和結尾標記
另外,在Java中,Java要求的格式是PEM去除標記,只有Key的內容。


沒有留言: