数据加密和完整性校验

This commit is contained in:
jiang 2024-08-08 15:11:05 +08:00
parent 700a9c6ac7
commit 02e82010ef
3 changed files with 12 additions and 9 deletions

View File

@ -1,5 +1,5 @@
// 密码强度级别常量
const PASSWORD_STRENGTH_LEVELS = {
const STRENGTH_LEVELS = {
WEAK: 'weak', // 弱:一类字符
MEDIUM: 'medium', // 中:两类字符
STRONG: 'strong', // 强:三类字符
@ -38,13 +38,14 @@ const REGISTER_CONFIG = {
// 配置设置
const CONFIG = {
STRENGTH:STRENGTH_LEVELS.STRONG,//密码强度配置
IS_OPEN_REGISTER: REGISTER_CONFIG.PHONE_REGISTER || REGISTER_CONFIG.EMAIL_REGISTER, // 是否开启注册
IS_CODE_LOGIN: LOGIN_CONFIG.CODE_EMAIL_LOGIN || LOGIN_CONFIG.CODE_PHONE_LOGIN, // 是否开启短信登录
// 数据设置
dataSettings: {
integrityCheck: DATA_SETTINGS.CLOSE, // 数据完整性校验true开启false关闭
encryptRequest: DATA_SETTINGS.CLOSE, // 数据传输加密true开启false关闭
encryptResponse: DATA_SETTINGS.CLOSE // 数据返回解密true开启false关闭
integrityCheck: DATA_SETTINGS.OPEN, // 数据完整性校验true开启false关闭
encryptRequest: DATA_SETTINGS.OPEN, // 数据传输加密true开启false关闭
encryptResponse: DATA_SETTINGS.OPEN // 数据返回解密true开启false关闭
}
}
@ -67,7 +68,7 @@ function getCodePlaceholderText() {
}
module.exports = {
PASSWORD_STRENGTH_LEVELS,
STRENGTH_LEVELS,
DATA_SETTINGS,
CONFIG,
SM_CONFIG,

View File

@ -73,10 +73,11 @@ service.interceptors.request.use(config => {
// 数据完整性校验
if (CONFIG.dataSettings.integrityCheck && checkIntegrity) {
config.headers['Params-Hash'] = hashWithSM3AndSalt(data)
config.data = data
}
// 加密数据
if (CONFIG.dataSettings.encryptRequest && encryptRequest) {
config.data = encryptCBC(data)
config.data = encryptCBC(data)
}
// 检查请求数据大小
const requestSize = JSON.stringify({ url: config.url, data: data, time: Date.now() }).length
@ -106,9 +107,10 @@ service.interceptors.request.use(config => {
// 响应拦截器
// 响应拦截器
service.interceptors.response.use(res => {
if (res.headers.data_encrypt_response) {
if (res.headers.encryptresponse) {
res.data = JSON.parse(decryptCBC(res.data))
}
console.log(res)
// 未设置状态码则默认成功状态
const code = res.data.code || 200
// 获取错误信息

View File

@ -1,4 +1,4 @@
import {PASSWORD_STRENGTH_LEVELS} from '@/utils/configure'
import {CONFIG} from '@/utils/configure'
/**
* @param {string} path
@ -127,7 +127,7 @@ export function validatePassword(rule, value, callback) {
let passedChecks = checks.filter(check => check.regex.test(value)).length
let requiredChecks
switch (PASSWORD_STRENGTH_LEVELS.STRONG) {
switch (CONFIG.STRENGTH) {
case 'weak':
requiredChecks = 1
break