@@ -12,6 +12,7 @@
|
||||
"@vant/area-data": "^1.1.3",
|
||||
"axios": "^0.19.0",
|
||||
"bootstrap": "^3.4.1",
|
||||
"crypto-js": "^4.1.1",
|
||||
"into": "^0.2.0",
|
||||
"js-pinyin": "^0.1.9",
|
||||
"less-loader": "^10.2.0",
|
||||
@@ -2629,6 +2630,11 @@
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/crypto-js": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
|
||||
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
|
||||
},
|
||||
"node_modules/css-loader": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/css-loader/download/css-loader-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz",
|
||||
@@ -11307,6 +11313,11 @@
|
||||
"randomfill": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"crypto-js": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
|
||||
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
|
||||
},
|
||||
"css-loader": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/css-loader/download/css-loader-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz",
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"@vant/area-data": "^1.1.3",
|
||||
"axios": "^0.19.0",
|
||||
"bootstrap": "^3.4.1",
|
||||
"crypto-js": "^4.1.1",
|
||||
"into": "^0.2.0",
|
||||
"js-pinyin": "^0.1.9",
|
||||
"less-loader": "^10.2.0",
|
||||
@@ -49,4 +50,4 @@
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
const CryptoJS = require('crypto-js'); //引用AES源码js
|
||||
|
||||
const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF"); //十六位十六进制数作为密钥
|
||||
const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412'); //十六位十六进制数作为密钥偏移量
|
||||
|
||||
//解密方法
|
||||
function Decrypt(word) {
|
||||
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
|
||||
let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
|
||||
let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
|
||||
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
|
||||
return decryptedStr.toString();
|
||||
}
|
||||
|
||||
//加密方法
|
||||
function Encrypt(word) {
|
||||
let srcs = CryptoJS.enc.Utf8.parse(word);
|
||||
let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
|
||||
return encrypted.ciphertext.toString().toUpperCase();
|
||||
}
|
||||
|
||||
export default {
|
||||
Decrypt ,
|
||||
Encrypt
|
||||
}
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
<script>
|
||||
import { Toast } from 'vant'
|
||||
import encrypt from '../assets/js/encrypt'
|
||||
export default {
|
||||
name: 'signIn',
|
||||
data() {
|
||||
@@ -46,7 +47,8 @@
|
||||
methods: {
|
||||
login() {
|
||||
let url = '/recsys/login'
|
||||
let res = {username: this.model.username, passwd: this.model.passwd}
|
||||
//密码解密
|
||||
let res = {username: this.model.username, passwd: encrypt.Decrypt(this.model.passwd)}
|
||||
|
||||
this.axios.post(url, res).then(resource => {
|
||||
if (resource.data.code === 200) {
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
areaList
|
||||
} from '@vant/area-data';
|
||||
import { Toast } from 'vant'
|
||||
import encrypt from '../assets/js/encrypt'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -88,6 +89,8 @@
|
||||
login() {
|
||||
let url = '/recsys/register'
|
||||
let res = this.model
|
||||
//密码加密
|
||||
res.passwd = encrypt.Encrypt(this.model.passwd)
|
||||
|
||||
if(this.state){
|
||||
this.axios.post(url, res).then(resource => {
|
||||
|
||||
@@ -11,14 +11,15 @@ module.exports = {
|
||||
}
|
||||
}
|
||||
},
|
||||
publicPath: './', // 基本路径
|
||||
outputDir: 'dist', // 输出文件目录
|
||||
assetsDir: "static", //放置生成的静态文件目录(js css img)
|
||||
publicPath: './', // 基本路径 默认'/',部署应用包时的基本 URL
|
||||
outputDir: 'dist', // 输出文件目录 生产环境构建文件的目录
|
||||
assetsDir: "static", //相对于outputDir的静态资源(js、css、img、fonts)目录
|
||||
productionSourceMap: false, // 生产环境是否生成 sourceMap 文件
|
||||
|
||||
chainWebpack: config => {
|
||||
// 添加别名
|
||||
config.resolve.alias
|
||||
.set('@', resolve('src'))
|
||||
.set('@', resolve('src')) //使用@代替src
|
||||
.set('assets', resolve('src/assets'))
|
||||
.set('components', resolve('src/components'))
|
||||
},
|
||||
@@ -26,8 +27,8 @@ module.exports = {
|
||||
if (process.env.NODE_ENV === 'production') {// 为生产环境修改配置...
|
||||
config.mode = 'production';
|
||||
config["performance"] = {//打包文件大小配置
|
||||
"maxEntrypointSize": 10000000,
|
||||
"maxAssetSize": 30000000
|
||||
"maxEntrypointSize": 10000000, // 入口起点的最大体积
|
||||
"maxAssetSize": 30000000 // 生成文件的最大体积
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user