解密有问提

lixuan
xk_guohonglei 4 years ago
parent e29760f1cb
commit fc6ae600a4
  1. 2
      App.vue
  2. 5
      package-lock.json
  3. 1
      package.json
  4. 51
      utils/encode.js
  5. 45
      utils/request.js

@ -32,7 +32,7 @@ import utils from '@/utils/encode'
console.log('App Show')
const JSESSIONID = utils.uuid()
console.log(JSESSIONID)
console.log(utils.bcrypt(JSESSIONID))
// console.log(utils.bcrypt(JSESSIONID))
uni.getLocation({
type: 'wgs84',
success: function (res) {

5
package-lock.json generated

@ -53,6 +53,11 @@
"resolved": "https://registry.npm.taobao.org/js-md5/download/js-md5-0.7.3.tgz",
"integrity": "sha1-tPL7sLMnRV9ZjWcn447Ccs0Jw/I="
},
"jsencrypt": {
"version": "3.0.0-rc.1",
"resolved": "https://registry.npm.taobao.org/jsencrypt/download/jsencrypt-3.0.0-rc.1.tgz",
"integrity": "sha1-DgpHRLpDzFV/tc9i/oZGvOtWGxw="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",

@ -19,6 +19,7 @@
"js-base64": "2.6.1",
"js-cookie": "2.2.1",
"js-md5": "0.7.3",
"jsencrypt": "^3.0.0-rc.1",
"react-native-bcrypt": "^2.4.0",
"tki-qrcode": "^0.1.6"
}

@ -1,20 +1,9 @@
import CryptoJS from 'crypto-js'
import md5 from 'js-md5'
// import dcodeIO from 'bcryptjs'
require.config({
paths: {
"bcrypt": "../node_modules/react-native-bcrypt/dist/bcrypt.js"
}
});
require(["bcrypt"], function(bcrypt) {
console.log(bcrypt)
})
let Base64 = require('js-base64').Base64
// var bcrypt = dcodeIO.bcrypt;
// let Base64 = require('js-base64').Base64
// import { JSEncrypt } from 'jsencrypt'
var keyStr = 'qDfajQ*v@W1mCruZ'
// var dcodeIO = bcrypt.setRandomFallback
// var bcrypt = dcodeIO.bcrypt
export default {
/**
@ -32,14 +21,43 @@ export default {
},
decrypt(word) { // 解密
var key = CryptoJS.enc.Utf8.parse(keyStr)
// var srcs = CryptoJS.enc.Utf8.parse(word)
if(word) {
word = word.replace(/[\r\n]/g,"")
}
var decrypt = CryptoJS.AES.decrypt(word, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
})
return CryptoJS.enc.Utf8.stringify(decrypt).toString()
},
// decrypt (word) {
// var key = CryptoJS.enc.Utf8.parse(keyStr)
// var encryptedHexStr = CryptoJS.enc.Hex.parse(word);
// var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
// var decrypt = CryptoJS.AES.decrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 })
// return decrypt.toString(CryptoJS.enc.Utf8).toString();
// },
// encrypt(data) {
// // 新建JSEncrypt对象
// let encryptor = new JSEncrypt();
// // 设置公钥
// encryptor.setPublicKey(keyStr);
// // 加密数据
// return encryptor.encrypt(data);
// },
// // 解密
// decrypt(data) {
// // 新建JSEncrypt对象
// let decrypt = new JSEncrypt();
// // 设置私钥
// decrypt.setPrivateKey(keyStr);
// // 解密数据
// return decrypt.decrypt(secretWord);
// },
md5Salt(str) {
return Base64.encode(md5(str + 'Do&9hY%l8e'))
console.log('hahahahaha',str, str + "Do&9hY%l8e", md5(str + 'Do&9hY%l8e'))
return md5(str + 'Do&9hY%l8e')
},
md5NoSalt(str) {
return md5(str)
@ -56,11 +74,6 @@ export default {
var uuid = s.join('')
return uuid
},
bcrypt(str) {
var salt = bcrypt.genSaltSync(10) // 定义密码加密的计算强度,默认10
var hash = bcrypt.hashSync(this.md5Salt(str), salt) // 把要加密的内容带进去,变量hash就是加密后的密码
return hash
}
}

@ -20,25 +20,28 @@ service.interceptors.request.use(
config.headers['Authorization'] = token
config.headers['device'] = openid
config.headers['dataSource'] = 'MP'
config.headers['dataSources'] = 'MP'
if (env === 'production') {
// if (env === 'production') {
// 生产环境,加密,不输出任何东西
// 设置jsessionid和token
const JSESSIONID = utils.uuid()
config.headers['JSESSIONID'] = JSESSIONID
config.headers['token'] = utils.bcrypt(JSESSIONID)
if (!notEncrypt && encryptWhite.indexOf(config.url) < 0) {
config.headers['token'] = utils.md5Salt(JSESSIONID)
// if ( encryptWhite.indexOf(config.url) < 0) {
// if (!notEncrypt && encryptWhite.indexOf(config.url) < 0) {
// 这是定义在哪的
const data = { // 用于存储加密
params: '' // 加密后的密文
}
// 要加密
data.params = utils.encrypt(JSON.stringify(config.data))
console.log(data.params)
config.data = data
}
} else {
// }
// } else {
console.log('请求路径', config.url, '参数加密前', config.data)
}
// }
return config
},
@ -57,17 +60,17 @@ service.interceptors.response.use(
const res = response.data
const env = process.env.NODE_ENV
if (env === 'production') {
// if (env === 'production') {
// 生产环境,进行加密解密,不输出日志
if (res.encrypt === 1) {
// if (res.encrypt === 1) {
// 加密的数据,需要解密
const dataParam = JSON.parse(utils.decrypt(res.data))
res.data = JSON.stringify(dataParam) === '{}' ? null : dataParam
}
} else {
// }
// } else {
console.log('请求路径', response.config.url, '返回结果未加密', res)
console.log('-------------------------------------------')
}
// }
uni.hideLoading()
if (res.code != 20000) {
@ -77,15 +80,15 @@ service.interceptors.response.use(
})
if(res.code===42011){
console.log(res.code)
uni.navigateTo({
url:'/pages/login/login',
success: () => {
console.log('跳转成功')
},
fail: (err) => {
console.log(err)
}
})
// uni.navigateTo({
// url:'/pages/login/login',
// success: () => {
// console.log('跳转成功')
// },
// fail: (err) => {
// console.log(err)
// }
// })
}
}
return res

Loading…
Cancel
Save