iOS 【在 RSA 加密中遇到的一些坑 - 安卓/iOS 所需私鑰不同】

在之前的開發項目中遇到了 RSA 加密,也有人私下問我,爲什麼他們的項目中安卓客戶端上傳的密文可以通過後臺密鑰進行解密,但是iOS端上傳的密文卻解密失敗。在兩個平臺上,其實是不同的:

openssl genrsa -out private_key.pem 1024
openssl req -new -key private_key.pem -out rsaCertReq.csr
openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt
openssl x509 -outform der -in rsaCert.crt -out public_key.der               // Create public_key.der For IOS
openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt  // Create private_key.p12 For IOS. 這一步,請記住你輸入的密碼,IOS代碼裏會用到
openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout             // Create rsa_public_key.pem For Java
openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt     // Create pkcs8_private_key.pem For Java

在後臺生成密鑰的過程中大致有上面七個步驟,而我要說的是上面七個步驟,總共生成7個文件。其中 public_key.der 和 private_key.p12 這對公鑰私鑰是給IOS用的, rsa_public_key.pem 和 pkcs8_private_key.pem 是給JAVA用的。  

而它們的源都來自一個私鑰: private_key.pem


所以說如果小夥伴們發生了我上面說得問題,記得和後臺溝通一下,看看那邊的私鑰是不是使用錯誤。

發佈了262 篇原創文章 · 獲贊 817 · 訪問量 61萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章