zoukankan      html  css  js  c++  java
  • js AES加密 转 Base64 再转成urlEncode

       

    安装   crypto-js       项目地址:https://github.com/lzx-cloud/examples-h5/tree/main/aes

    运行命令:  cnpm install crypto-js --save

      新建脚本 tool.js

    const CryptoJS = require('crypto-js');  //引用AES源码js
    
    var key = CryptoJS.enc.Utf8.parse("123456");
    var iv = CryptoJS.enc.Utf8.parse("T(123456");
    
    //解密方法
    function Decrypt(word) {
    
      let encryptedHexStr = CryptoJS.enc.Base64.parse(word);
      let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    
      let decrypt = CryptoJS.AES.decrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });
      let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
      return decryptedStr.toString();
    
    }
    
    //加密方法
    function Encrypt(word){
      let srcs = CryptoJS.enc.Utf8.parse(word);
      let encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });
    
      let encryptedHexStr = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
      return encryptedHexStr.toString();
      // return encrypted.ciphertext.toString().toUpperCase();   //不需要加密base64的时候可以直接返回
    }
    
    exports.Decrypt = Decrypt;
    exports.Encrypt = Encrypt;

      新建脚本 然后引入tool.js即可

    const {Decrypt,Encrypt} = require('./tools');
    
    const en = Encrypt("20211109134330");
    
    console.dir("加密后:" + en);
    
    const de = Decrypt('TATKPwbeKuoV/SqsYb0cfw==');
    console.dir("解密后:" + de);
    
    console.dir("---------");
    console.dir(encodeURIComponent ("N8c15TVp+CIAQ5I3IHZQZw=="));
    console.dir(decodeURIComponent("N8c15TVp%2BCIAQ5I3IHZQZw%3D%3D"));
    
    console.dir("---------");
    console.dir(encodeURIComponent ("TATKPwbeKuoV/SqsYb0cfw=="));
    console.dir(decodeURIComponent("TATKPwbeKuoV%2FSqsYb0cfw%3D%3D"));
  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    leetcode 213. 打家劫舍 II JAVA
    leetcode 48. 旋转图像 java
    leetcode 45. 跳跃游戏 II JAVA
    leetcode 42. 接雨水 JAVA
    40. 组合总和 II leetcode JAVA
    24. 两两交换链表中的节点 leetcode
    1002. 查找常用字符 leecode
    leetcode 23. 合并K个排序链表 JAVA
  • 原文地址:https://www.cnblogs.com/ZhiXing-Blogs/p/15528722.html
Copyright © 2011-2022 走看看