CryptoJS加密使用

在项目上npm安装crypto-js 

npm install crypto-js

在项目里创建个文件.js

在secret.js里引入 const CryptoJS = require('crypto-js'); 
在里面写入两个方法

// 定义keyStr 和 ivStr

const keyStr = "icklsdufidsakdfa";  //十六位十六进制数作为密钥

const ivStr = 'icklsdufidsakdfa'; // 偏移量

// 加密方法

function Encrypt(data) {

    var key = CryptoJS.enc.Utf8.parse(keyStr);

    var iv = CryptoJS.enc.Utf8.parse(ivStr);

    var encrypted = CryptoJS.AES.encrypt(data, key, {

        iv: iv,

        mode: CryptoJS.mode.ECB,

        padding: CryptoJS.pad.Pkcs7

    });

    //返回的是base64格式的密文

    return encrypted.ciphertext.toString();

}

// 解密方法

// encrypted 为是base64格式的密文

function Decrypt(encrypted) {

    // 拿到字符串类型的密文需要先将其用Hex方法parse一下

    var encryptedHexStr = CryptoJS.enc.Hex.parse(encrypted);

    // 将密文转为Base64的字符串

    // 只有Base64类型的字符串密文才能对其进行解密

    var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);

    var key = CryptoJS.enc.Utf8.parse(keyStr);

    var iv = CryptoJS.enc.Utf8.parse(ivStr);

    var decrypt = CryptoJS.AES.decrypt(encryptedBase64Str, key, { iv: iv, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });

    return CryptoJS.enc.Utf8.stringify(decrypt)

}

// 测试加解密

function testAES() {

    var data = { name:"1234567890123456",nn:[1,2,3]}; // 明文

    let op = JSON.stringify(data);

    // 测试加密

    var encrypted = Encrypt(op); // 密文

    console.log("加密后: ", encrypted);

 

    var decryptedStr = Decrypt(encrypted);

    console.log("解密后: ",JSON.parse(decryptedStr));

}

 testAES()

// 浏览器打印结果

// 导出方法,以便其他地方调用

export default {

    Decrypt,

    Encrypt

}

// 在项目里全局引用 (我这边是放到了vue项目的main.js)

import AES from '@/common/js/secret'

Vue.prototype.AES = AES
// 其他需要的地方直接

this.AES.Encrypt(‘要加密数据’)
this.AES.Decrypt(‘要解密数据’)

// 局部引用类似我这边就不写了反正在你要用的地方单独引入去用就好,一样滴

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值