數(shù)據(jù)加解密DES??md5
config.js
import CryptoJS from 'crypto-js';
import md5 from 'js-md5';
export const appKey = 'cb60158028a44b5234ce9ed1c03bc7acb0';
export const calcuMD5 = (pwd) => { return md5(pwd) }
export const encryptBy =(plaintText,CRYPTOJSKEY) =>{
? ? var plaintText = plaintText;
? ? var options = {
? ? ? mode: CryptoJS.mode.ECB,
? ? ? padding: CryptoJS.pad.Pkcs7
? ? };
? ? var key = CryptoJS.enc.Utf8.parse(CRYPTOJSKEY);
? ? var encryptedData = CryptoJS.DES.encrypt(plaintText, key, options);
? ? var encryptedBase64Str = encryptedData.toString();
? ? return encryptedBase64Str;
}
export const decryptBy = (encryptedBase64Str,CRYPTOJSKEY, type) => {
? ? var encryptedBase64Str = encryptedBase64Str;
? ? var options = {
? ? ? mode: CryptoJS.mode.ECB,
? ? ? padding: CryptoJS.pad.Pkcs7
? ? };
? ? var key = CryptoJS.enc.Utf8.parse(CRYPTOJSKEY);
? ? // 解密
? ? var decryptedData = CryptoJS.DES.decrypt(encryptedBase64Str, key, options);
? ? // 解密后僵蛛,需要按照Utf8的方式將明文轉(zhuǎn)位字符串
? ? var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);
? ? return decryptedStr;
}
創(chuàng)建 http.js
import axios from 'axios';
import Qs from 'qs';
import { appKey , calcuMD5 , decryptBy , encryptBy } from '../config';
const BASE_URL = process.env.BASE_API; //域名路徑
const seedMd5 = calcuMD5("U2FsdGVkX189N3VRCrUckSMoQM98v8PB"); //加密MD5
const formatParams = (data)=>{
? ? let arr = [];
? ? for (let name in data) {
? ? ? ? arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name]));
? ? }
? ? return arr.join("&");
}
axios.defaults.timeout = 15000; //超時(shí)時(shí)間
export const httpService = (url,params,method) => {
? ? let slol = JSON.stringify(params);
? ? let data = encryptBy(slol, seedMd5); //加密參數(shù)
? ? let t = Date.parse(new Date()); //時(shí)間戳
? ? let fString = appKey + "&" + t + "&" + data;
? ? let sign = encryptBy(fString, seedMd5);
? ? let newParams = {
? ? ? ? data,
? ? ? ? appKey,
? ? ? ? t,
? ? ? ? sign,
? ? ? ? token:window.sessionStorage.token ? window.sessionStorage.token : ''
? ? }
? ? if(method === 'post')
? ? {
? ? ? ? return? new Promise((resolve, reject) => {
? ? ? ? ? ? axios.post(BASE_URL+url, Qs.stringify(newParams),{
? ? ? ? ? ? ? ? headers: {
? ? ? ? ? ? ? ? ? ? 'Content-Type': 'application/x-www-form-urlencoded'
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }).then(data=>{
? ? ? ? ? ? ? ? data.data = JSON.parse(decryptBy(data.data,calcuMD5("U2FsdGVkXN32VRRCrUckSMoQM98v8PBHUHA")))
? ? ? ? ? ? ? ? resolve(data.data);
? ? ? ? ? ? }).catch(error=>{
? ? ? ? ? ? ? ? reject(error);
? ? ? ? ? ? });
? ? ? ? })
? ? }
? ? else
? ? {
? ? ? ? return? new Promise((resolve, reject) => {
? ? ? ? ? ? axios.get(BASE_URL+url+'?'+formatParams(params)).then(data=>{
? ? ? ? ? ? ? ? resolve(data.data);
? ? ? ? ? ? }).catch(error=>{
? ? ? ? ? ? ? ? reject(error);
? ? ? ? ? ? });
? ? ? ? })
? ? }
}
創(chuàng)建 相對http請求的調(diào)用的文件
menber.js??
import { httpService } from './httpService';
/**
* @name 登錄
* @param {*} params
*/
export const login = (params) =>{
? ? return httpService('me.huha.platform.api.service.BUserLoginOutService.login/v1.0.0',params,'post');
}
使用時(shí)引用?
import { login } from '../../api/member';
使用
async gofun() {
const loginData = await login(data);
?if(loginData.retType !== 1) return this.$message.error(loginData.retMsg);
this.$store.commit('userInfo',loginData,data);
}