1.npm引入CryptoJS
npm install crypto-js
2.在util新建个util.js
3.引入加密js,并且配置,其中圈起来的几项根据后端接口的要求配置,
import * as CryptoJS from 'crypto-js'
/**
*加密处理
*/
export const encryption = (params) => {
let {
data,
type,
param,
key
} = params
const result = JSON.parse(JSON.stringify(data))
if (type === 'Base64') {
param.forEach(ele => {
result[ele] = btoa(result[ele])
})
} else {
param.forEach(ele => {
var data = result[ele]
key = CryptoJS.enc.Latin1.parse(key)
var iv = key
// 加密
var encrypted = CryptoJS.AES.encrypt(
data,
key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
})
result[ele] = encrypted.toString()
})
}
return result
}
4.在需要的页面引入util.js中的encryption方法
import { encryption } from '@/util/util'
5.在需要加密的地方使用该方法,其中key是后端给的,param中配置的选项便是你需要加密的选项
export default {
data () {
return {
loginForm: {
username: "admin",
password: "123456",
code: "",
randomStr: "blockPuzzle",
},
}
},
methods: {
loginHandle () {
const user = encryption({
data: this.loginForm,
key: '5fda473108bf3e63',
param: ['password']
})
console.log(user)
},
}
}
6.最终password加密成下面这个样子