import md5 from 'js-md5'//安装并引入md5
// 后端配合加密方式
const publicKey = '' //这段是后端给你的密钥
// 加密
export const encrypt = (txt: string | any) => {
const encryptor = new md5({});
encryptor.setPublicKey(publicKey); // 设置公钥
return encryptor.encrypt(txt); // 对需要加密的数据进行加密
};
// 字符签名处理 这是后端约定的加密方式 对传输的对象排序打乱
const handleSign = (arr) => {
const newStr = arr.reduce((result, str) => {
for (let i = 0; i < str.length; i++) {
result[i] = (result[i] || '') + str.charAt(i); // 拼接每个字符串的每个字符
}
return result;
}, []).join('');
return newStr
}
export const sortASCII = (obj, isSort) => {
let arr: any = []
Object.keys(obj).forEach(item => arr.push(item))
let sortArr = isSort ? arr.sort() : arr.sort().reverse()
let sortObj: any = {}
for (let i in sortArr) {
sortObj[sortArr[i]] = obj[sortArr[i]]
}
// 变成字符串
for (let key in sortObj) {
if (typeof sortObj[key] !== "string") {
sortObj[key] = String(sortObj[key]);
}
}
let keysArr = Object.values(sortObj)
return md5(handleSign(keysArr).toString() + publicKey)
}
vue3.0+ts md5签名配合后端加密方法加密
最新推荐文章于 2024-07-10 18:03:42 发布