Vue使用DES模式加密解密,包括Java加密解密

前端加密解密

1.安裝:npm install crypto-js
2.創建一個crypto.ts文件

import CryptoJS from 'crypto-js'

export default {
    //加密
    encrypt(data){
        const key  = CryptoJS.enc.Utf8.parse('o08YQii9QF5MuzYj');
        let res = CryptoJS.DES.encrypt(JSON.stringify(data), key, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        }).ciphertext.toString();
        return res;
    },
    //解密
    decrypt(data){
        const key  = CryptoJS.enc.Utf8.parse('o08YQii9QF5MuzYj');
        let res = CryptoJS.DES.decrypt({
            ciphertext: CryptoJS.enc.Hex.parse(data)
        }, key, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        })
        return CryptoJS.enc.Utf8.stringify(res);
    }

}

3.在interceptors(攔截器)中進行加密解密

import Crypto from './crypto'

//request攔截器
http.interceptors.request.use((config) => {
  if(config.method === 'post') {
    config.data = Crypto.encrypt(config.data)
  }
  return config
}, (error) => {
  return Promise.reject(error)
})

//response攔截器
http.interceptors.response.use((respoens) => {
  respoens.data= JSON.parse(Crypto.decrypt(respoens.data));
  if(respoens.data.errorCode === -1 || !respoens.data.success) {
    Message.error(respoens.data.msg)
  }
  return respoens.data
}, (error) => {
  if (error && error.response) {
    switch (error.response.status) {
      case 500:
        Message.error('服務器繁忙')
        break
    }
  } else {
    Message.error('連接超時,請刷新頁面')
  }
})

Java加密解密

參考:https://blog.csdn.net/u013000304/article/details/85772542

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章