移动端千目GO
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

28 lines
1.1 KiB

export const encrypt = (word, keyStr) => {
keyStr = keyStr ? keyStr : "0123456789QMSaas";
var key = window.CryptoJS.enc.Utf8.parse(keyStr); //Latin1 w8m31+Yy/Nw6thPsMpO5fg==
var srcs = window.CryptoJS.enc.Utf8.parse(word);
var encrypted = window.CryptoJS.AES.encrypt(srcs, key, {
mode: window.CryptoJS.mode.ECB,
padding: window.CryptoJS.pad.Pkcs7,
});
return encrypted.toString();
};
export const decrypt = (word, keyStr) => {
keyStr = keyStr ? keyStr : "0123456789QMSaas";
var key = window.CryptoJS.enc.Utf8.parse(keyStr); //Latin1 w8m31+Yy/Nw6thPsMpO5fg==
var decrypt = window.CryptoJS.AES.decrypt(word, key, {
mode: window.CryptoJS.mode.ECB,
padding: window.CryptoJS.pad.Pkcs7,
});
return window.CryptoJS.enc.Utf8.stringify(decrypt).toString();
};
const getStamp = () => parseInt(new Date().getTime() / 1000);
export const assembleUrl = (url) => {
const [prefix, uri] = url.split("mall");
let stamp = getStamp();
let token = encodeURIComponent(encrypt(uri + stamp));
return `${prefix}mall${uri}?token=${token}&time=${stamp}`;
};