天天看點

iOS AES+BASE64+RSA 混合加密

    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

iOS AES+BASE64+RSA 混合加密

2.$genrsa -out rsa_private_key.pem 2048

在目前 bin 檔案目 錄中會新增一個 rsa_private_key.pem 檔案

iOS AES+BASE64+RSA 混合加密

3.生成公鑰

$rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

iOS AES+BASE64+RSA 混合加密

4. 生成PKCS8 編碼的私鑰   複制儲存  (Java适用)

$pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

iOS AES+BASE64+RSA 混合加密

5.使用者目錄下會出現2個密鑰檔案 

iOS AES+BASE64+RSA 混合加密

demo用法

下載下傳連結    https://github.com/FORMAT-qi/dome.git

iOS AES+BASE64+RSA 混合加密