RSA非對稱加密
RSA非對稱加密, 適用于Java和iOS
應用場景:用戶登錄時對登錄密碼進行加密
啟動終端, 創(chuàng)建證書
// create private_key.pem
openssl genrsa -out private_key.pem 1024
// create rsaCertReq.csr
,這一步需要輸入一些信息(包括國家、省、市等等),根據(jù)提示操作即可
openssl req -new -key private_key.pem -out rsaCertReq.csr
// create rsaCert.crt
,其中3650是有效期(天),可隨意寫
openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt
// create public_key.der
, For iOS
openssl x509 -outform der -in rsaCert.crt -out public_key.der
// create private_key.p12
, For iOS
, 這一步需要設置密碼,請牢記
openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt
// create rsa_public_key.pem
, For Java
openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout
// Create pkcs8_private_key.pem
, For Java
openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt
在終端執(zhí)行上面的命令后,會生成7個文件。其中public_key.der
和private_key.p12
這對公私鑰給iOS
使用,rsa_public_key.pem
和pkcs8_private_key.pem
給JAVA
使用。
它們的源都來自一個私鑰:private_key.pem
, 所以iOS端加密的數(shù)據(jù),可以被JAVA端解密; 同樣JAVA端加密的數(shù)據(jù)iOS端也能解密。
iOS 代碼
請將public_key.der
和private_key.p12
文件拖入Xcode項目,以及NSData+Base64.h/m
(可從網上下載), 并引入Security.framework
依賴庫。