zoukankan      html  css  js  c++  java
  • crypto.js加密传输

    前端页面

    <!DOCTYPE html>
    <html>

    <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/crypto-js.js"></script>
    <script>
    function encryptByDES(message, key) {
    var keyHex = CryptoJS.enc.Utf8.parse(key);
    var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
    });
    return encrypted.toString();
    }

    function decryptByDES(ciphertext, key) {
    var keyHex = CryptoJS.enc.Utf8.parse(key);
    var decrypted = CryptoJS.DES.decrypt({
    ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
    }, keyHex, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
    });

    return decrypted.toString(CryptoJS.enc.Utf8);
    }
    $(function() {
    var pwd = encryptByDES("crd", "12345678");
    $("#aaa").val(pwd);
    $("#pwd").val(decryptByDES(pwd,"12345678"));
    });
    </script>
    </head>

    <body>

    <input id="aaa" value="" />
    <input id="pwd" value="" />
    </body>

    </html>

    后台:

    /**
    * DES解密
    *
    * @param secretData
    * 密码字符串
    * @param secretKey
    * 解密密钥
    * @return 原始字符串
    * @throws Exception
    */
    public String decryption(String secretData, String secretKey) throws Exception {
    // DES算法要求有一个可信任的随机数源
    SecureRandom random = new SecureRandom();
    // 创建一个DESKeySpec对象
    DESKeySpec desKey = new DESKeySpec(secretKey.getBytes("UTF-8"));
    // 创建一个密匙工厂
    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
    // 将DESKeySpec对象转换成SecretKey对象
    SecretKey securekey = keyFactory.generateSecret(desKey);
    // Cipher对象实际完成解密操作
    Cipher cipher = Cipher.getInstance("DES");
    // 用密匙初始化Cipher对象
    cipher.init(Cipher.DECRYPT_MODE, securekey, random);
    // 真正开始解密操作
    return IOUtils.toString(cipher.doFinal(Base64.decodeBase64(secretData.getBytes())),"UTF-8");

    }

    调用:

    System.out.println("=========" + decryption("tzZ2WRdJ32o=", "12345678"));

    注意密匙需要八位以上的所以这里用了1到8,密匙可以自定义

  • 相关阅读:
    什么是MSI文件?
    学习window系统下的注册表
    AngularJS学习手册
    学习ajax 总结
    jquery基础教程读书总结
    overflow:hidden清除浮动原理解析及清除浮动常用方法总结
    javascript进阶-原型prototype
    javascript-函数进阶
    小技巧之a标签自动解析URL
    Myeclipse出现 java文件中文乱码问题
  • 原文地址:https://www.cnblogs.com/rdchen/p/10895334.html
Copyright © 2011-2022 走看看