前段時間根據功能的需要,需在頁面對用戶提交的表單數據采用3des加密,然后提交到后臺。之前在網上通過百度、谷歌搜索了很久,雖然找到了很多的資料,但是總有各種問題。要嘛是js加密后,后臺不能解密,要嘛是部分數據后臺java代碼解密失敗。
我對網上找的代碼進行了修改,解決了這個問題。在js中對需加密數據不滿足8位的采用空字符進行填充。在后臺解密時,采用無填充模式(desede/CBC/NoPadding)。下面是具體的加密代碼。
在頁面上導入des.js的js文件。
~~~
<span style="font-family: Arial, Helvetica, sans-serif;">/**</span>
~~~
~~~
*secretKey密鑰需與java的3des的secretKey相同
*在我的代碼實現中secretKey是在后臺生產,放入到redis的,每一次進入頁面都會新生產一個。大家也可以把這個值寫死在這里
*/
secretKey = "0123456789abcd0123456789";
//varStr需要加密的字符串
//enStr是已加密的字符串
var enStr=DES3.encrypt(secretKey,varStr);
~~~
后臺java解密實現:
~~~
//secretKey值需要與js加密的secretKey密鑰相同
secretKey = "0123456789abcd0123456789";
//value解密后的值
//enStr需要解密的只字符串
String value=DES3.decode(enStr, secretKey)
~~~
3des的js、java文件在下面zip中:
[http://download.csdn.net/detail/mr_smile2014/9325545](http://download.csdn.net/detail/mr_smile2014/9325545)
- 前言
- spring事務(Transaction )報 marked as rollback-only異常的原因及解決方法
- 自己整理的編碼規范總結。(個人覺得很受用)
- spring事務常見問題、異常分析和解決方法
- 剖析OutOfMemoryError: PermGen space產生原因及解決方法
- 剖析java.lang.OutOfMemoryError: Java heap space產生原因及解決方法
- java中不同的ORM框架實現對數據庫批量插入數據庫的方式與技巧
- 解決java讀取大文件內存溢出問題、如何在不重復讀取與不耗盡內存的情況下處理大文件
- 不得不看的Java代碼性能優化總結
- 實現使用3des在頁面js加密,后臺java解密
- Java日志記錄的5條規則