import CryptoJS from "crypto-js"
|
|
export function wxDecryptData(appId, sessionKey,encryptedData, iv) {
|
// base64 decode
|
return new Promise((res,rej)=>{
|
// #ifdef MP-ALIPAY
|
// 解密
|
let sessionKey3 = CryptoJS.enc.Base64.parse(sessionKey)
|
let iv3 = CryptoJS.enc.Base64.parse(iv)
|
|
let decrypt = CryptoJS.AES.decrypt(encryptedData, sessionKey3, {
|
iv:iv3,
|
mode: CryptoJS.mode.CBC,
|
padding: CryptoJS.pad.Pkcs7
|
});
|
let decoded = decrypt.toString(CryptoJS.enc.Utf8);
|
decoded = JSON.parse(decoded)
|
//console.log("wxDecryptData",decoded)
|
if (decoded.watermark.appid !== appId) {
|
//console.log("wxDecryptData 解密异常",appId)
|
rej("解密异常")
|
}
|
else{
|
res(decoded)
|
}
|
// #endif
|
// #ifndef MP-ALIPAY
|
|
try {
|
// 解密
|
let sessionKey3 = CryptoJS.enc.Base64.parse(sessionKey)
|
let iv3 = CryptoJS.enc.Base64.parse(iv)
|
|
let decrypt = CryptoJS.AES.decrypt(encryptedData, sessionKey3, {
|
iv:iv3,
|
mode: CryptoJS.mode.CBC,
|
padding: CryptoJS.pad.Pkcs7
|
});
|
let decoded = decrypt.toString(CryptoJS.enc.Utf8);
|
decoded = JSON.parse(decoded)
|
//console.log("wxDecryptData",decoded)
|
if (decoded.watermark.appid !== appId) {
|
//console.log("wxDecryptData 解密异常",appId)
|
rej("解密异常")
|
}
|
else{
|
res(decoded)
|
}
|
} catch (err) {
|
//console.log("wxDecryptData catch",err)
|
rej("解密异常")
|
}
|
// #endif
|
|
|
})
|
}
|
export function feishuDecryptData(appId, sessionKey,encryptedData, iv) {
|
// base64 decode
|
// console.log("feishuDecryptData ",appId, sessionKey,encryptedData, iv)
|
return new Promise((res,rej)=>{
|
try {
|
var sessionKey3 = CryptoJS.enc.Hex.parse(sessionKey)
|
var iv3 = CryptoJS.enc.Hex.parse(iv)
|
var decrypt = CryptoJS.AES.decrypt(encryptedData, sessionKey3, {
|
iv:iv3,
|
mode: CryptoJS.mode.CBC,
|
}) ;
|
//console.log("feishuDecryptData decrypt",decrypt)
|
var decoded = decrypt.toString(CryptoJS.enc.Utf8);
|
//console.log("feishuDecryptData decoded",decoded)
|
let json = JSON.parse(decoded)
|
//console.log("feishuDecryptData json",json)
|
if (json.watermark.appid !== appId) {
|
//console.log("feishuDecryptData 解密异常",appId)
|
rej("解密异常")
|
}
|
else{
|
res(json)
|
}
|
} catch (err) {
|
//console.log("feishuDecryptData catch",err)
|
rej("解密异常")
|
}
|
})
|
}
|