首页 > 其他 > 详细

对称加密——对入参进行DES加密处理

时间:2017-09-20 20:40:04      阅读:286      评论:0      收藏:0      [点我收藏+]

 

体验更优排版请移步原文:http://vblog.win/blogs/programming/symmetric-encryption-des-js-java.html

 

对称加密是最快速、最简单的一种加密方式,加密和解密共用一个对称秘钥,因其高效性,被广泛应用在加密协议中。今天恰巧用到,在此总结一下。

我们项目中需要在前端js里对入参进行DES加密传入后台,后台java再进行解密,网上找了一个谷歌的DES加密js包crypto-js点此下载

下载完成之后找到两个js文件引入项目工程中,

1
2
<script type="text/javascript" src="libs/crypto/tripledes.js" ></script>
<script type="text/javascript" src="libs/crypto/mode-ecb.js" ></script>

js中对params(json对象)加密:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function encryptParamsByDES(params, key) {
var keyHex = CryptoJS.enc.Utf8.parse(key),
desParams = {};
if(!params || JSON.stringify(params) == ‘{}‘){
return {};
}else{
$.each(params, function(i, val) {
var desVal = CryptoJS.DES.encrypt(val, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
desParams[i] = desVal.toString();
});
return desParams;
}
}
console.log(encryptParamsByDES({name: ‘test‘, password: ‘123456‘}, ‘kwinwang‘));

将对称秘钥设置为kwinwang,测试加密输出:

Object {name: “r5vQ2jNkBsc=”, password: “nqp+WDNwUFw=”}

前端加密就完成了,我们再用java尝试解密,

1
2
3
4
5
6
public static void main(String[] args) throws Exception {
String decName = DESUtil.decryption("r5vQ2jNkBsc=", "kwinwang");//解密name
String decPassword = DESUtil.decryption("nqp+WDNwUFw=", "kwinwang");//解密password
System.out.println("明文name:" + decName);
System.out.println("明文password:" + decPassword);
}

执行main方法,控制台输出:

技术分享

后台解密成功!简直不敢相信,但就是这么简单。

附件下载:DESUtil工具类(Java)

对称加密——对入参进行DES加密处理

原文:http://www.cnblogs.com/kaidarwang/p/7563450.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!