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


    体验更优排版请移步原文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)

  • 相关阅读:
    python如何打开一个大文件?
    python中的多进程与多线程(二)
    python中的多进程与多线程(一)
    python中的深拷贝与浅拷贝
    2018 pycharm最近激活码
    python中的新式类与旧式类
    用python优雅打开文件及上下文管理协议
    解决Mac上安装mysqlclient的错误
    用python实现一个简单的服务器
    高阶函数
  • 原文地址:https://www.cnblogs.com/kaidarwang/p/7563450.html
Copyright © 2020-2023  润新知