使用crypto-js进行DES加/解密
crypto-js 官方网站:https://github.com/brix/crypto-js
中文参考教程:前端加密JS库–CryptoJS 使用指南
在线加解密网站:https://www.mklab.cn/utils/des
首先要安装crypto-js库,根据自己使用的方式按照官方网站步骤进行即可。
一、DES加密方法(先要安装CryptoJS,并跟后端沟通好模式)
// 把你UTF8编码的key转成WordArray对象
const _key = CryptoJS.enc.Utf8.parse('your key');
// 把你UTF8编码的iv字符串转成WordArray
// 如果是ECB模式,就不用iv
const _iv = CryptoJS.enc.Utf8.parse('your iv');
// 需要加密的字符串,如果不是字符串就要用JSON.stringify转一下
const _str = 'your string';
const _encrypt = CryptoJS.DES.encrypt(_str, _key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.NoPadding,
});
const _result = _encrypt.toString()
二、解密方法(需要先跟后端沟通好采用的模式)
// 把UTF8编码的key转成WordArray对象
const _key = CryptoJS.enc.Utf8.parse('your key')
// 需要解密的字符串,根据需要转换成对应的编码(例如16进制的密文先转成WordArray对象,再转成Base64字符串)
const _str = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Hex.parse('your encrypt string'))
const _decrypt = CryptoJS.DES.decrypt(_str, _key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.NoPadding,
})
const _result = CryptoJS.enc.Utf8.stringify(_decrypt)