demo下載下傳連結 github.com/FORMAT-qi/dome.git
AES
美國國家标準技術研究所在2001年釋出了進階加密标準(AES)。AES是一個對稱分組密碼算法,旨在取代DES成為廣泛使用的标準。根據使用的密碼長度,AES最常見的有3種方案,用以适應不同的場景要求,分别是AES-128、AES-192和AES-256。
優點:簡單、可并行計算、誤差不傳遞,加密速度快。
缺點:不能實作數字簽名、密鑰的分發和管理不易管理、對稱加密。容易被破解。
RSA
RSA是第一個能同時用于加密和數字簽名的算法,也易于了解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現在已近二十年,經曆了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優秀的公鑰方案之一。
優點:安全性高、不可逆的,防沖突。
缺點:計算非常複雜,加密速度遠趕不上對稱加密。
混合加密思路:
因為RSA加密速度太慢,是以内容選擇用AES加密,KEY用RSA進行加密。
1.随機生成16位字元串 做為AES加密的KEY ,以保證每次加密相同内容的密文不一樣。
2.用戶端負責加密資料,隻放公鑰,用公鑰對生成的KEY進行RSA加密。
3.重要的密鑰放在背景,背景隻負責解密,先用密鑰解出KEY,再用key解密AES密文。
實作:
生成RSA 公鑰,密鑰
打開終端:
1.$openssl
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcsQXYtJ3bm9CXldWYtlWPzNXZj9mcw1ycz9WL49jb1c0Y11EVP1mVy00aO1mWp5kaNhXUU10aadFTxUERPlXT61Ue4k3YsR2VZRHbyg1aGJjYzJEWkZHOXFWdVhUY6VzVZBHctxkeWJjWoFzVhRXUXlld4d0YxkTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
2.$genrsa -out rsa_private_key.pem 2048
在目前 bin 檔案目 錄中會新增一個 rsa_private_key.pem 檔案
3.生成公鑰
$rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
4. 生成PKCS8 編碼的私鑰 複制儲存 (Java适用)
$pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
5.使用者目錄下會出現2個密鑰檔案
demo用法
下載下傳連結 https://github.com/FORMAT-qi/dome.git