体验更优排版请移步原文http://blog.kwin.wang/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加密处理的更多相关文章

  1. jmeter对接口测试入参进行MD5加密的5种方式

    在使用jmeter做测试的过程中,经常需要对请求的入参进行加密,下面列举几种常用的方法,以登录请求密码需要MD5加密为例. 虽然可以先把参数化的明文密码都先md5加密,而不是在登录前先执行加密,但是实 ...

  2. app逆向万能的md5加密hook破解入参方法(其他加密用通用方法原理差不多,小白推荐)

    一.原理 安卓开发调用md5加密时候都会调用到系统类java.security.MessageDigest 加密时候会会调用里面2个关键方法update以及digest 根据这个原理我们开始写代码吧 ...

  3. DES加密

    接口等加密字段 import java.security.SecureRandom; import javax.crypto.Cipher;import javax.crypto.SecretKey; ...

  4. Python实现基于DES加密源码的文本加密器

    这是自行制作的一个DES文本加密工具 最终效果图: 本加密器支持UTF-8字符的加解密(包含中文),由于其中的编码方式与常用编码方式不同,加密结果与网上工具不同,但是能实现正常加解密. 最终目标: 目 ...

  5. .Net使用DES加密,.Net和java分别解密,并正则匹配替换加密密码为明文

    在VS中用WindowsApplication做一个exe程序,用来给数据库密码加密,加密代码如下 private void generateBtn_Click(object sender, Even ...

  6. Python Des加密与解密实现软件注册码、机器码

    原理 判断路径下是否存在识别文件,若存在就解密对比,若不存在就进入机器码注册: 获取系统C盘序列号作为识别ID,并添加随机数作为混淆,生成最终机器码. 将机器码发给软件开发者,开发者将机器码解密后,添 ...

  7. 【DES加密解密】 C#&JAVA通用

    DES加密解密 C# Code /// <summary> /// DES加密解密帮助类 /// </summary> public static class DESHelpe ...

  8. php中des加密解密 匹配C#des加密解密 对称加密

    原文:php中des加密解密 匹配C#des加密解密 对称加密 网上找来的 php des加密解密 完全匹配上一篇C# 字符串加密解密函数  可以用于C#和php通信 对数据进行加密,其中$key 是 ...

  9. 对称加密DES加密

    DES加密: des是对称加密,加密和解密需要相同的秘钥,它的密码最长56位,必须是8的倍数,秘钥越长,越安全. package com.trm.util.encrypt; import java.s ...

随机推荐

  1. LARAVEL IOC容器 示例解析

    <?php class People { public $dog = null; public function __construct() { $this->dog = new Dog( ...

  2. silverlight——获取控件相对位置

    事出有因:页面中存在滚动条,然后点击页面按钮时会进行正确性检查,如果出错在控件的位置会出现提示信息,但由于滚动条的出现,有可能在非可视区域内的控件出了问题,但目前是看不见的,因此,考虑获得出问题控件的 ...

  3. 树形DP新识

    HihoCoder: 1041(点) 1063(边) 1035(边) HDU1520 (签到) HDU2415(emm) 目前我遇到的树形DP有两类: ∂:点处理,大概就是点的乱搞,比如找一些点,这些 ...

  4. GLSL 内建函数

    内建函数基本上可以分为一下三类: (1)它们使用一些简便的方式提供必要的硬件功能,如材质贴图.这些函数单独通过着色器是无法模拟出来的. (2)它们展示了一些可以常简单的写入的繁琐操作(clamp, m ...

  5. turtle海龟作图

    个人心得:python这么火是有他的原因的,突然发现他的语言很有趣,库函数也很多. 这次是第一步,简单了解了一下turtle函数 import turtle import time def drawS ...

  6. python之json扩展

    #!/usr/bin/env python # -*- coding: utf8 -*- # __Author: "Skiler Hao" # date: 2017/4/9 15: ...

  7. 洛谷P2192HXY玩卡片

    题目大意 给你n个数,只包括5和0. 从中取一些数,要求组成的数是90的倍数. 如: 4 5 0 5 0 结果是0 题解 90=9*10,如果一个是90的倍数一定末尾有0,那么这个 数一定是10的倍数 ...

  8. python 开始学习

    "人生苦短, 我用python" ---------以此敬意伟大的生产力创造!

  9. git clone遇到的[ssh: connect to host github.com port 22]

    起因 在学习递归的时候,对汉诺塔小研究了一番,参考网上写了个demo,后面就想同步到github. 过程 这台电脑是新电脑,所以需要先本地生成ssh key:ssh-keygen -t rsa -C ...

  10. VC编译选项 md /mdd /ml /mt/mtd

    VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)C 运行时库                        库文件Single threa ...