通过AES加密前端传递参数

1.首先下载依赖  "crypto-js": "^4.2.0",

2.引入

import CryptoJS from 'crypto-js';
//AES加密
function encryptAES(data) {
	//如果参数为空或者为空对象就不生成签名
	console.log(!data,'!data!data!data!data!data!data!data!data!data!data')
	if (!data || JSON.stringify(data) === '{}') {
		return '';
		}

	// 获取参数的所有键,并按照ASCII码排序
	let keys = Object.keys(data).sort();
	
	// 遍历排序后的键数组,使用键从原始对象中获取对应的值,并使用'&'符号将它们拼接起来
	let sortedParamsString = keys.map(key => `${key}=${data[key]}`).join('&');


	return AES(sortedParamsString);
}
/** 加密函数
 * @param {Object} data
 */
function AES(data) {
	// 密钥与偏移量若与服务端有交互,则需确保它们与服务端使用的是相同的。 
	// 密钥
	const secretKey = CryptoJS.enc.Utf8.parse("8985b2c4fb1900cf");
	// 偏移量
	const iv = CryptoJS.enc.Utf8.parse('bc3f07fbe54c4b90')
	let encryptedParams = typeof data === 'string' ? data : JSON.stringify(data)
	let encrypted = CryptoJS.AES.encrypt(encryptedParams, secretKey, {
		iv: iv,
		mode: CryptoJS.mode.CBC,
		padding: CryptoJS.pad.Pkcs7
	})
	return encrypted.toString();
}
export default {
	encryptAES
}

3.在http封装里面使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值