近期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