Android客戶端加密Server后臺端解密 遇到的問題

最近老大叫弄一個加密,給密碼加密傳給Server端.

使用 AES加密算法+Base64編碼 給用戶密碼加密;

在Android端加密是什么問題都沒有.

A.然而在Server端解密的時候卻報錯了,如下:

java.security.NoSuchAlgorithmException:Cannot find any provider supporting AES/ECB/PKCS7PADDING

然后google一番 說將 AES/ECB/PKCS7PADDING 改成 AES/ECB/PKCS5PADDING

B.然后又報

EncryptionException:java.security.InvalidKeyException:Illegal key size

真是揪心啊!非法key大小,是說java 不支持AES-256,只可以到 AES-128.

要支持256的 點擊這里下載?jar包.


理一下解決的具體步驟:

一.解決 Cannot find any provider supporting AES/ECB/PKCS7PADDING 的問題.

1.在Android端的不必修改.Android一點問題都沒有

2.將服務端的加密工具類的 AES/ECB/PKCS7PADDING?改成 AES/ECB/PKCS5PADDING

二.解決EncryptionException:java.security.InvalidKeyException:Illegal key size 問題

1.下載 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy 包

下載地址

下載之后呢,將zip解壓,可以看到如下目錄

UnlimitedJCEPolocy

具體替換原有的jar包:

1.1拷貝解壓包的兩個jar文件 [local_policy.jar , US_export_policy.jar] 到 java的如下目錄:

看圖看路徑就曉得了


三.這樣應該就解決了以上 的問題,如有其它問題另外再解決.

注意:以上是在 jdk1.8 的環境下的.

記錄下問題;如還有更好的方法請相告.

不喜勿噴!祝閱者生活愉快!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容