npm i sm-crypto 首先下载依赖
新建一个index.js文件
const sm2 = require("sm-crypto").sm2;
/**
* sm2加密
* @param {*} value 要加密的value
* @return 加密后的密文
*/
export function sm2Encryption(value) {
// 公钥
const publicKey =
"你的公钥";
let encryptData = value && sm2.doEncrypt(value, publicKey, 1);
// 加密的数据前面要拼接04
return encryptData ? "04" + encryptData : null;
}
然后在main.js全局挂载
然后在 request.js请求里面写如下代码 注意:(请求拦截器前写)
let configData = JSON.parse(JSON.stringify(config));
const { params, data } = configData;
//要加密的参数池
const filterKeys = [
"password",//密码
];
//是否脱敏
let isSm2 = false;
filterKeys.forEach((item) => {
if (data && Object.prototype.hasOwnProperty.call(data, item)) {
data[item] = sm2Encryption(data[item]);
isSm2 = true;
}
if (params && Object.prototype.hasOwnProperty.call(params, item)) {
params[item] = sm2Encryption(params[item]);
isSm2 = true;
}
});
if (isSm2) {
config.data = configData.data;
config.params = configData.params;
}
这样就可以使用啦~