解密有问提

lixuan
xk_guohonglei 5 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') console.log('App Show')
const JSESSIONID = utils.uuid() const JSESSIONID = utils.uuid()
console.log(JSESSIONID) console.log(JSESSIONID)
console.log(utils.bcrypt(JSESSIONID)) // console.log(utils.bcrypt(JSESSIONID))
uni.getLocation({ uni.getLocation({
type: 'wgs84', type: 'wgs84',
success: function (res) { 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", "resolved": "https://registry.npm.taobao.org/js-md5/download/js-md5-0.7.3.tgz",
"integrity": "sha1-tPL7sLMnRV9ZjWcn447Ccs0Jw/I=" "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": { "ms": {
"version": "2.0.0", "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", "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-base64": "2.6.1",
"js-cookie": "2.2.1", "js-cookie": "2.2.1",
"js-md5": "0.7.3", "js-md5": "0.7.3",
"jsencrypt": "^3.0.0-rc.1",
"react-native-bcrypt": "^2.4.0", "react-native-bcrypt": "^2.4.0",
"tki-qrcode": "^0.1.6" "tki-qrcode": "^0.1.6"
} }

@ -1,20 +1,9 @@
import CryptoJS from 'crypto-js' import CryptoJS from 'crypto-js'
import md5 from 'js-md5' 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 keyStr = 'qDfajQ*v@W1mCruZ'
// var dcodeIO = bcrypt.setRandomFallback
// var bcrypt = dcodeIO.bcrypt
export default { export default {
/** /**
@ -32,14 +21,43 @@ export default {
}, },
decrypt(word) { // 解密 decrypt(word) { // 解密
var key = CryptoJS.enc.Utf8.parse(keyStr) 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, { var decrypt = CryptoJS.AES.decrypt(word, key, {
mode: CryptoJS.mode.ECB, mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7 padding: CryptoJS.pad.Pkcs7
}) })
return CryptoJS.enc.Utf8.stringify(decrypt).toString() 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) { 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) { md5NoSalt(str) {
return md5(str) return md5(str)
@ -56,11 +74,6 @@ export default {
var uuid = s.join('') var uuid = s.join('')
return uuid 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['Authorization'] = token
config.headers['device'] = openid config.headers['device'] = openid
config.headers['dataSource'] = 'MP' config.headers['dataSources'] = 'MP'
if (env === 'production') { // if (env === 'production') {
// 生产环境,加密,不输出任何东西 // 生产环境,加密,不输出任何东西
// 设置jsessionid和token // 设置jsessionid和token
const JSESSIONID = utils.uuid() const JSESSIONID = utils.uuid()
config.headers['JSESSIONID'] = JSESSIONID config.headers['JSESSIONID'] = JSESSIONID
config.headers['token'] = utils.bcrypt(JSESSIONID) config.headers['token'] = utils.md5Salt(JSESSIONID)
if (!notEncrypt && encryptWhite.indexOf(config.url) < 0) { // if ( encryptWhite.indexOf(config.url) < 0) {
// if (!notEncrypt && encryptWhite.indexOf(config.url) < 0) {
// 这是定义在哪的
const data = { // 用于存储加密 const data = { // 用于存储加密
params: '' // 加密后的密文 params: '' // 加密后的密文
} }
// 要加密 // 要加密
data.params = utils.encrypt(JSON.stringify(config.data)) data.params = utils.encrypt(JSON.stringify(config.data))
console.log(data.params)
config.data = data config.data = data
} // }
} else { // } else {
console.log('请求路径', config.url, '参数加密前', config.data) console.log('请求路径', config.url, '参数加密前', config.data)
} // }
return config return config
}, },
@ -57,17 +60,17 @@ service.interceptors.response.use(
const res = response.data const res = response.data
const env = process.env.NODE_ENV 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)) const dataParam = JSON.parse(utils.decrypt(res.data))
res.data = JSON.stringify(dataParam) === '{}' ? null : dataParam res.data = JSON.stringify(dataParam) === '{}' ? null : dataParam
} // }
} else { // } else {
console.log('请求路径', response.config.url, '返回结果未加密', res) console.log('请求路径', response.config.url, '返回结果未加密', res)
console.log('-------------------------------------------') console.log('-------------------------------------------')
} // }
uni.hideLoading() uni.hideLoading()
if (res.code != 20000) { if (res.code != 20000) {
@ -77,15 +80,15 @@ service.interceptors.response.use(
}) })
if(res.code===42011){ if(res.code===42011){
console.log(res.code) console.log(res.code)
uni.navigateTo({ // uni.navigateTo({
url:'/pages/login/login', // url:'/pages/login/login',
success: () => { // success: () => {
console.log('跳转成功') // console.log('跳转成功')
}, // },
fail: (err) => { // fail: (err) => {
console.log(err) // console.log(err)
} // }
}) // })
} }
} }
return res return res

Loading…
Cancel
Save