实现使用3des在页面js加密,后台java解密

         前段时间根据功能的需要,需在页面对用户提交的表单数据采用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

你可能感兴趣的:(3desjs加密java解密)