在前后端分离的今天,前后端数据交互显得尤为重要,数据交互的安全更是重中之重,所以前后端开发者们就会协商使用数据加密的方法来保证数据的安全,防止被不法分子窃取,危害公共安全。
des的加密解密方法是开发者们常常使用的一种加密方式,简单的使用方法颇受开发者的青睐。
- 首先安装des加密/解密插件
npm install crypto-js --save
- 引入模块
import CryptoJS from "crypto-js";
- 封装一个加密方法
function 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();
}
- 封装一个解密的方法
function decryptByDES(ciphertext, key){
var keyHex = CryptoJS.enc.Utf8.parse(key);
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);
}
- 导出所封装的方法
export {encryptByDES,decryptByDES}
前期准备工作完成,开始测试工作
- 导入载有刚才所封装的解密/加密方法的文件
import {encryptByDES,decryptByDES} from './des.js'
注意:无论是加密还是解密我们都需要一个密钥,在项目开发中我们可以与后端商量出一个共同的密钥,保证数据的安全
- 在此我们先随便写一个密钥
const seriectkey='asdfghjkl1556'
- 先验证加密
const tel='18598681475'
let enctel=encryptByDES(tel,seriectkey)
console.log(enctel)//UgUETaqrEO27nXZm26NvIg==
可以清晰的看出加密成功了
- 验证解密
console.log(decryptByDES(enctel,seriectkey))//18598681475
不出意外的解密也成功了
我这边是用node环境下运行的,感兴趣的小伙伴们可以尝试一下
下面是代码相关的文件截图
封装方法的文件
测试方法的文件
部分朋友可能需要这个截图
倘若出现了这样的问题
可在package.json文件中进行如下修改,具体如图所示
所需要修改的代码块:
"type": "module"
参考图: