Vue项目中crypto-js加密解密的封装(附完整代码)

  1. 导入 crypto-js 库;
   npm install crypto-js --save-dev
  1. 定义密钥 key 和密钥偏移量 iv ;

  2. 创建一个名为 crypto 的对象;

    加密实现过程

  3. 首先将待加密的数据转换为 CryptoJS.enc.Utf8 格式的字节序列。

  4. 使用相应的加密算法(如 AES、DES、Triple DES、Rabbit 或 RC4)对字节序列进行加密,使用给定的密钥、密钥偏移量;

  5. 将加密结果转换为字符串形式,并返回加密后的结果;

    解密实现过程

  6. 对于每个解密函数,首先将密文转换为 CryptoJS 支持的格式;

  7. 使用相应的解密算法对密文进行解密,使用给定的密钥、密钥偏移量;

  8. 将解密结果转换为字符串形式,返回解密的结果;

  9. 对于哈希函数 hashSHA256 ,使用 SHA256 算法对给定的数据进行哈希计算,并将结果转换为字符串形式返回;

  10. 最后,将 crypto 对象作为默认导出,放入main.js中全局注册或按需导入。

import CryptoJS from 'crypto-js';

const key = CryptoJS.enc.Utf8.parse('your key'); // 密钥
const iv = CryptoJS.enc.Utf8.parse('your iv'); // 添加密钥偏移量

const crypto = {
   
  // AES(高级加密标准)
  // AES 是一种对称加密算法,被广泛应用于保护数据的机密性
  // 它支持不同的密钥长度(128位、192位和256位)和多种加密模式(如 ECB、CBC 等)
  // AES 加密
  encryptAES(encryptData) {
   
    const srcs = CryptoJS.enc.Utf8.parse(encryptData);
    const encrypted = CryptoJS.AES.encrypt(srcs, key, {
   
      iv, // 使用密钥偏移量
      mode: CryptoJS.mode.CBC, // 使用 CBC 模式
      // 除了CBC(密码块链模式)之外
      // crypto-js 库还支持:
      // 1. ECB(电子密码本模式)2. CFB(密码反馈模式)3. OFB(输出反馈模式)4. CTR(计数器模式)
      padding: CryptoJS.pad.Pkcs7,
    });
    return encrypted.toString
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

「已注销」

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

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

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

打赏作者

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

抵扣说明:

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

余额充值