1. 程式人生 > >Android RSA演算法與Java RSA演算法不同標準

Android RSA演算法與Java RSA演算法不同標準

最近專案中遇到了RSA資料加密的問題。客戶端為Android App,服務端使用Java開發。

開始在網上找到一份很普通的Java RSA加密演算法,直接引入到專案中發現在客戶端(Android)加密後,在伺服器端(Java)解不開;但是在客戶端單獨加解密並沒有問題,在服務端單獨加解密也是沒有問題的。

最後在網上查詢才發現,是由於Android RSA與Java RSA標準並不完全一樣,主要問題在與以下程式碼段:
這裡寫圖片描述

Cipher.getInstance(param);
1.在Java 中使用時,param:“RSA”;
2.在Android中使用時,param:”RSA/ECB/PKCS1Padding”;

另外,需要注意的是:經過RSA加密後的字串中會有一些特殊字元,在網路傳輸時,會發生變化,導致解密失敗。因此,在傳輸之前需要雙方約定,對特殊字元進行處理。