美文网首页
vue AES 加密string和json

vue AES 加密string和json

作者: Hello杨先生 | 来源:发表于2020-01-13 09:30 被阅读0次

    npm install crypto-js --save-dev
    第一个加密string,写在外部js文件里面,模块化
    第二个加密JSON,写在main.js里面,写在原型上
    方法1

    111111111111111第一步11111111111111111
    util.js 
    const CryptoJS = require('crypto-js');  //引用AES源码js
    const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF");  //十六位十六进制数作为密钥
    const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412');   //十六位十六进制数作为密钥偏移量
    
    //加密方法
    export 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 });
      return encrypted.ciphertext.toString().toUpperCase();
    }
    //解密方法
    export function Decrypt(word){
      let encryptedHexStr = CryptoJS.enc.Hex.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();
    }
    
    22222222222222第二步2222222222222
    import { Encrypt , Decrypt   } from '../../../html/assets/js/utils'
    
    333333333333333第三步333333333333333333
    mounted
    this.test()
    
    44444444444444四步444444444444
    method
    test(){
            //测试加密
            console.log("*************************************")
    
            var chepai = 'A88888'
            console.log('加密前',chepai)
    
    
            var Encryptchepai = Encrypt(chepai)
            console.log('加密了',Encryptchepai)
    
    
            var Decryptchepai = Decrypt(Encryptchepai)
            console.log('解密后',Decryptchepai)
    }
    
    

    方法2

    111111111111111第一步11111111111111111
    main.js
    const CryptoJS = require('crypto-js');  //引用AES源码js
    const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF");  //十六位十六进制数作为密钥
    const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412');   //十六位十六进制数作为密钥偏移量
    //加密方法
    Vue.prototype.$Encrypt = 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 });
      return encrypted.ciphertext.toString().toUpperCase();
    }
    //解密方法
    Vue.prototype.$Decrypt= function Decrypt(word){
      let encryptedHexStr = CryptoJS.enc.Hex.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();
    }
    
    22222222222222第二步2222222222222
    mounted
    this.test()
    
    
    333333333333333第三步333333333333333333
    
    method
    test(){
            var client = { //业务查询
              license_code:'A88888',//license_code  车牌号
              clientId:"8d7adwsaFea254732",//clientId   客户编号
              createChannel:"中国银行",//createChannel  办理渠道
              clientCreateDate:"2019/09/09 09:38:52",//clientCreateDate 用户办理时间
            }
            //测试加密
            console.log("*************************************")
            var chepai = client
            console.log('JSON加密前',chepai)
            var Encryptchepai = this.$Encrypt(JSON.stringify(chepai))
            console.log('JSON加密了',Encryptchepai)
            var Decryptchepai = JSON.parse(this.$Decrypt(Encryptchepai))
            console.log('JSON解密后',Decryptchepai)
    }
    
    
    
    

    运行结果


    image.png

    相关文章

      网友评论

          本文标题:vue AES 加密string和json

          本文链接:https://www.haomeiwen.com/subject/wbrgactx.html