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,密匙可以自定义

  • 相关阅读:
    linux内存不足导致java进程被kill掉
    记一次centos服务器DNS引起的网络问题
    记consul集群和spring cloud集成遇到的问题。
    记一次url未encode遇到的问题
    十六周总结
    十五周总结
    计算最长英语单词链
    大道至简阅读笔记02
    大道至简阅读笔记01
    用户体验评价之搜狗输入法
  • 原文地址:https://www.cnblogs.com/rdchen/p/10895334.html
Copyright © 2011-2022 走看看