zoukankan      html  css  js  c++  java
  • vue中使用AES.js和crypto.js加密

    一:crypto-js加密

    1.1:安装依赖

    npm install crypto-js --save-dev 
    

    1.2 :在项目目录上创建一个js文件里面写入加密,解密的代码

    mport CryptoJS from 'crypto-js'
    /**
     * 
     * @param {*待加密的字符串} str 
     * @param {*相当于是密钥} strKey 
     * @param {*相当于是双层密钥的意思} strIv
     *  strKey strIv长度需要和后面商量
     */
    export let encrypt = function (str, strKey, strIv) { //加密
        let key = CryptoJS.enc.Utf8.parse(strKey);
        let iv = CryptoJS.enc.Utf8.parse(strIv);
        let encrypted = '';
    
        let srcs = CryptoJS.enc.Utf8.parse(str);
        encrypted = CryptoJS.AES.encrypt(srcs, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return encrypted.ciphertext.toString();
    };
    export let decrypt = function (str, strKey, strIv) { //解密
        let key = CryptoJS.enc.Utf8.parse(strKey);
        let iv = CryptoJS.enc.Utf8.parse(strIv);
        let encryptedHexStr = CryptoJS.enc.Hex.parse(str);
        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();
    };
    export function getTimes() {
        return new Date().getTime()
    };
    

     当然具体加密方式就要看公司内部的规则。但是方法差不多

    1.3:main.js中全局引入

    import { encrypt, decrypt } from '@/utils/encryp.js';
     
    Vue.prototype.encrypt = encrypt
    Vue.prototype.decrypt = decrypt
    

    1.4:在你想要使用的页面进行使用

    let c = this.encrypt("所需加密的字符串")
    console.log(c)            //加密
    let d = this.decrypt(c)
    console.log(d)            //解密

    二:AES.js加密

    其实方法大同小异

    2.1:装依赖

    npm install aes-js
    

    2.2:创建文件装代码

    var data1={}//要加密的数据
    
    var aseKey='你们公司自己的密钥';//密钥
    var key = CryptoJS.enc.Utf8.parse(aesKey);//将密钥转换成Utf8字节数组
    
    //加密
       var encrypt = CryptoJS.AES.encrypt(JSON.stringify(data1), key, {
    		 iv: CryptoJS.enc.Utf8.parse(aseKey.substr(0,16)),
              mode: CryptoJS.mode.CBC,
             padding: CryptoJS.pad.Pkcs7
        });
        var data2=encrypt.toString();//加密后的数据
    
    //解密
    
      var decrypt = CryptoJS.AES.decrypt(data2, key, {
                iv: CryptoJS.enc.Utf8.parse(aseKey.substr(0,16)),
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
     });
     var data3=JSON.parse(decrypt.toString(CryptoJS.enc.Utf8));//解密后的数据
    

    2.3:然后与上面相同在自己需要的地方使用

    AES.JS加密取自于:https://blog.csdn.net/yingbaoyu/article/details/95761177   经过实际的测试也可以达到加密的效果。

  • 相关阅读:
    《如何快速阅读一本书》读书笔记总结(实测,对提升阅读速度和质量非常有用)---2020年的第8/100本 (一目十行读书训练法)
    穷查理宝典 读书笔记--2020年的第1/100本
    200个查理芒格思维模型---多元思维模型
    lintcode算法周竞赛
    2016 Google code jam 大赛
    程序员面试心得总结
    (lintcode全部题目解答之)(附容易犯的错误)
    模板
    《非连续性》 混沌大学商学院第3章 读书笔记总结--2020年的第19/100本
    《第二曲线》 混沌大学商学院第2章 读书笔记总结--2020年的第18/100本
  • 原文地址:https://www.cnblogs.com/Old-vegetable-chicken/p/14217493.html
Copyright © 2011-2022 走看看