在实际开发中,会用到前端请求后台接口时对请求参数进行加密处理。
以下是两种方式
方式一:
import CryptoJS from "crypto-js";
// DES加密
export const encryptDes = (message, key) => {
var keyHex = CryptoJS.enc.Utf8.parse(key);
var option = { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 };
var encrypted = CryptoJS.DES.encrypt(message, keyHex, option);
return encrypted.ciphertext.toString()
}
// DES解密
export const decryptDes = (message, key) => {
var keyHex = cryptoJs.enc.Utf8.parse(key)
var decrypted = cryptoJs.DES.decrypt({
ciphertext: cryptoJs.enc.Hex.parse(message)
},keyHex, {
mode: cryptoJs.mode.ECB,
padding: cryptoJs.pad.Pkcs7
})
return decrypted.toString(cryptoJs.enc.Utf8)
}
方式二:
import CryptoJS from 'crypto-js';
// DES加密
export const encryptByDES = (message, key) => {
var keyHex = CryptoJS.enc.Utf8.parse(key);
var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
// DES解密
export const decryptByDES = (ciphertext, key) => {
var keyHex = CryptoJS.enc.Utf8.parse(key);
// direct decrypt ciphertext
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(ciphertext)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
使用方法:
import { encryptByDES, decryptByDES } from "@lib/des"
const { user, pas } = userInfo
const userName = encryptByDES(user, '*abc123');
const passWord = encryptByDES(pas, '*abc123');