近期pc端需要跳转到另一个项目中 :modal里面放ifram展示 url 跳转的内容
另外一个项目是.net做的页面 ,后台让做一个入参aes加密 于是
1>下载
npm install crypto-js --save
2>>引用
import * as CryptoJS from 'crypto-js'; // aes加密
3>>>使用 写一个加密 解密的方法
/*AES加密*/
Encrypt(data, iv) {
let encrypted = CryptoJS.AES.encrypt(data, CryptoJS.enc.Latin1.parse(iv), {
iv: CryptoJS.enc.Latin1.parse(iv),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
/*AES解密*/
Decrypt(data) {
let data2 = data //.replace(/
/gm, "");
let AuthTokenIv = 100869992099929 //偏移量 找后台拿
let AuthTokenKey = 123 //解密密码 找后台拿
let decrypted = CryptoJS.AES.decrypt(data2, CryptoJS.enc.Latin1.parse(AuthTokenKey), {
iv: CryptoJS.enc.Latin1.parse(AuthTokenIv),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
isFillIn = (record) => {
let that = this
// 开发测试地址:http://******.e24health.com
// 宝*人**院线上地址:https://barmyy-m***e.e24health.com
let url = "https://barmyy-*anag*.e24health.com/Survey/******ecords"
let obj = { "RefUserId": record.patID, "RefRecordId": record.admID, "QuestId": null }
let newString = JSON.stringify(obj)
const option = {
method: 'POST',
mode: 'cors',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
'params': this.Encrypt(newString, "10086******5")//偏移量
})
};
fetch(url, option)
.then(function (response) {
if (response.ok) {
return response.text();
} else {
console.log('网络错误,请稍后再试')
return;
}
}).then(function (data) {
let resData = JSON.parse(data)//json字符串转对象
//判断是否已经答题
if (resData.code == 10) {
that.setState({
questionFlag: 0
})
return
}
if (resData.code != 10 && resData.data[0] && resData.data[0].allHasAnswerSubPercent && resData.data[0].allHasAnswerSubPercent != "0") {
that.setState({
questionFlag: 1
})
} else {
that.setState({
questionFlag: 0
})
}
}).catch(function (e) {
console.log("发送失败: ", e);
that.setState({
questionFlag: 0
})
})
}
参数说明:
AuthTokenKey---密钥 ,
iv ---密钥偏移量,(可接口返回,可直接前后端统一)
参数解释:
解密算法是 AES-128-CBC算法,数据采用 PKCS#7 填充 ;
所以key 长度为 16位
过程中:
遇到几个问题

请求一直不通 出现警告
后面打开控制台

还是跨域的问题 后台进行了接口构建 给了几个可以访问到的域名 端口

于是对应的在本地的项目进行域名和端口的配置,保证上下域一致,从而访问到

ok