前端 AES 加密

本文介绍了如何在JavaScript项目中使用CryptoJS库实现AES加密和解密,着重于在GET请求中处理特殊字符的问题,并通过encodeURIComponent解决。涉及了AES加密算法和基本的组件集成实例。
摘要由CSDN通过智能技术生成

背景

在最近的项目中,客户要求三方安全测试,因此对系统中部分接口采用加密传输。

首先

npm i crypto-js --save

在js文件中写加密、解密的方法

import CryptoJS from "crypto-js"

// AES加密
export function encryptByAES (data) {
  let AESKey = "XXXXXXXX";  // 此处为密钥
  let key = CryptoJS.enc.Utf8.parse(AESKey);
  let cipherText = CryptoJS.AES.encrypt(data, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return cipherText.toString();
}

// AES解密
export function decryptedByAES (data) {
  let AESKey = "XXXXXXXX";  // 此处为密钥
  let key = CryptoJS.enc.Utf8.parse(AESKey);
  let decryptedData = CryptoJS.AES.decrypt(data, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return decryptedData.toString(CryptoJS.enc.Utf8)
}

在组件中使用

import { encryptByAES, decryptedByAES} from '@/XXX/aes.js'

console.log(encryptByAES("此处为明文"));
console.log(decryptedByAES("此处为密文"));

在使用过程中发现get请求会过滤密文中的特殊符号,所以需要在进行请求时,使用encodeURIComponent()方法进行转换。

import { encryptByAES, decryptedByAES} from '@/XXX/aes.js'

console.log(encryptByAES("此处为明文"));

encodeURIComponent(encryptByAES("此处为明文"));

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值