我的应用场景后端对接口数据进行DES加密,前端需要解密,前后端需统一key值,加密方式,填充方式以及返回数据编码(我这是base64);于是使用到了crypto-js库,使用这个库时候。需要将数据转换成它内部的数据类型wordArray,解密出来的数据也是wordArray需要转换,crypto-js库内部提供转换方法。
加密的数据:
安装crypto-js
DES加密解密
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| import CryptoJS from "crypto-js";
const key = 'yuanpeng'
function encryptByDES (message) { const keyHex = CryptoJS.enc.Utf8.parse("约定的key"); const encrypted = CryptoJS.DES.encrypt(message, keyHex, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return encrypted.ciphertext.toString(CryptoJS.enc.Base64); }
function decryptByDES (ciphertext) { const keyHex = CryptoJS.enc.Utf8.parse("约定的key"); const 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); }
|