快应用 使用AES加密方法

快应用 本身自带的也有AES加密方法,但是我这边用不了;
我这里npm install crypto-js下载到了本地;

在这里插入图片描述
这里的ace.js就是crypto-js.js,所有我就有重新建立了一个crypto-js.js;
在这里插入图片描述
新建立的crypto-js.js代码如下:

//引入ace.js
const CryptoJS = require('./ace.js')
export class objStr {
    /**
  * 生成密钥
  * @param n 生成多少位的密钥(默认8位)
  */
    getKey(n) {
        var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
        if (n == null) {
            n = 16;
        }
        var res = "";
        for (var i = 0; i < n; i++) {
            var id = Math.ceil(Math.random() * 35);
            res += chars[id];
        }
        return res;
    };
    //加密方法
    encrypt(word) {
        const that = this;
        let keyStr = that.getKey();
        let ivStr = that.getKey();
        let key = CryptoJS.enc.Utf8.parse(keyStr);
        let iv = CryptoJS.enc.Utf8.parse(ivStr);
        let srcs = word;
        let encrypted = CryptoJS.AES.encrypt(srcs, key, {
            iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        let result = keyStr.toString() + ivStr.toString() + encrypted.toString();
        return result;
    };
    //解密方法 
    Decrypt(word) {
        if (word != undefined) {
        	//数据的0-16位key
            let key = CryptoJS.enc.Utf8.parse(word.slice(0, 16));
            //数据的16-32位是iv
            let iv = CryptoJS.enc.Utf8.parse(word.slice(16, 32));
            let srcs = word.slice(32);
            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();
        }
    }
}

使用方法:
在使用的页面import { objStr } from "../../assets/js/crypto-js.js";引入
private: {objStr:null,},定义
然后 onInit() { const that = this; that.objStr = new objStr(); },
是用const that = this; that.objStr.Decrypt(data); that.objStr.encrypt(data)调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫叶&情缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值