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

  • 相关阅读:
    jenkins+maven+svn的自动化部署
    python+selenium遇到鼠标悬停不成功可以使用js进行操作
    robot framework环境搭建
    selenium+python定位元素方法
    selenium+python元素操作
    selenium+python等待时间
    selenium+python浏览器窗口的切换
    jmeter学习(七)连接mysql 数据库
    jmeter学习(六)集合点和关联
    jmeter学习(五)参数化
  • 原文地址:https://www.cnblogs.com/rdchen/p/10895334.html
Copyright © 2011-2022 走看看