| | |
| | | import React from 'react' |
| | | import moment from 'moment' |
| | | import md5 from 'md5' |
| | | import CryptoJS from 'crypto-js' |
| | | |
| | | const formatKeys = [ |
| | | { key: 'select', value: ' msltk ' }, |
| | |
| | | * @description sql加密 |
| | | * @return {String} value |
| | | */ |
| | | static formatOptions (value) { |
| | | static formatOptions (value, exec_type = '') { |
| | | if (!value) return '' |
| | | |
| | | let salt = 'minKe' // 盐值 |
| | | |
| | | value = value.replace(/\n/ig, ' \n ') |
| | | // 替换关键字 |
| | | formatKeys.forEach(item => { |
| | | let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig') |
| | | value = value.replace(reg, item.value) |
| | | }) |
| | | // 替换%符(数据库中解析后sql报错) |
| | | value = value.replace(/%/ig, ' mpercent ') |
| | | |
| | | // 外联数据库替换 |
| | | if (window.GLOB.externalDatabase !== null) { |
| | | value = value.replace(/@db@/ig, window.GLOB.externalDatabase) |
| | | } |
| | | // encode编码(中文字符超出base64加密范围) |
| | | value = window.btoa(window.encodeURIComponent(value)) |
| | | // 插入字符 |
| | | let index = Math.floor(value.length / 2) |
| | | value = value.slice(0, index) + salt + value.slice(index) |
| | | // base64加密 |
| | | value = window.btoa(value) |
| | | |
| | | // 替换%符(数据库中解析后sql报错) |
| | | value = value.replace(/%/ig, ' mpercent ') |
| | | |
| | | if (exec_type === 'x') { |
| | | let key = CryptoJS.enc.Utf8.parse('D1185ED7B32568C9') |
| | | let iv = CryptoJS.enc.Utf8.parse('') |
| | | let srcs = CryptoJS.enc.Utf8.parse(value) |
| | | |
| | | let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) |
| | | value = encrypted.toString() |
| | | |
| | | // let wordArray = CryptoJS.enc.Base64.parse(value) |
| | | // let decryptedWordArray = CryptoJS.AES.decrypt({ ciphertext: wordArray }, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) |
| | | // let decryptedText = CryptoJS.enc.Utf8.stringify(decryptedWordArray) |
| | | } else { |
| | | // 替换关键字 |
| | | formatKeys.forEach(item => { |
| | | let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig') |
| | | value = value.replace(reg, item.value) |
| | | }) |
| | | // encode编码(中文字符超出base64加密范围) |
| | | value = window.btoa(window.encodeURIComponent(value)) |
| | | // 插入字符 |
| | | let salt = 'minKe' // 盐值 |
| | | let index = Math.floor(value.length / 2) |
| | | value = value.slice(0, index) + salt + value.slice(index) |
| | | // base64加密 |
| | | value = window.btoa(value) |
| | | } |
| | | |
| | | return value |
| | | } |