Merge pull request #41 from kenken-xr/master

密码加密
This commit is contained in:
若如意
2021-12-28 15:00:51 +08:00
committed by GitHub
6 changed files with 51 additions and 8 deletions

View File

@@ -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",

View File

@@ -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"
}
}

View File

@@ -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
}

View File

@@ -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) {

View File

@@ -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 => {

View File

@@ -11,14 +11,15 @@ module.exports = {
}
}
},
publicPath: './', // 基本路径
outputDir: 'dist', // 输出文件目录
assetsDir: "static", //放置生成的静态文件目录(js css img
publicPath: './', // 基本路径 默认'/',部署应用包时的基本 URL
outputDir: 'dist', // 输出文件目录 生产环境构建文件的目录
assetsDir: "static", //相对于outputDir的静态资源(jscssimg、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 // 生成文件的最大体积
}
}
}