uniapp前端传参加密(二)(DES)
DES加密解密
概论:加密密钥和解密密钥是相同的,安全性高,运算速度快,但如果有n个合作伙伴就需要有n个密钥,管理不方便
步骤:
1.安装加解密插件crypto-js => npm install crypto-js
2.复制插件中 crypto-js.js 文件到自己新建的文件中
3.新建des文件夹=>des.js文件 代码如下
1 import CryptoJS from '../crypto-js.js' 2 3 /* 4 DES(Data Encryption Standard)和TripleDES是对称加密的两种实现。 5 DES和TripleDES基本算法一致,只是TripleDES算法提供的key位数更多,加密可靠性更高。 6 DES使用的密钥key为8字节,初始向量IV也是8字节。 7 TripleDES使用24字节的key,初始向量IV也是8字节。 8 */ 9 //des加密 DES-EDE3-CBC 10 var keyvi = '12345678'; 11 12 function des_encrypt(message) { 13 var key = CryptoJS.MD5(keyvi).toString(); 14 var iv = CryptoJS.MD5(keyvi).toString(); 15 var crypto_key = CryptoJS.enc.Utf8.parse(key); 16 var crypto_iv = CryptoJS.enc.Utf8.parse(iv.substr(0, 8)); 17 18 var encode_str = CryptoJS.TripleDES.encrypt(message, crypto_key, { 19 iv: crypto_iv, 20 mode: CryptoJS.mode.CBC, 21 padding: CryptoJS.pad.Pkcs7 22 }); 23 return encode_str.toString(); 24 25 } 26 //des解密 DES-EDE3-CBC 27 function des_decrypt(message) { 28 var key = CryptoJS.MD5(keyvi).toString(); 29 var iv = CryptoJS.MD5(keyvi).toString(); 30 var crypto_key = CryptoJS.enc.Utf8.parse(key); 31 var crypto_iv = CryptoJS.enc.Utf8.parse(iv.substr(0, 8)); 32 var decrypt_str = CryptoJS.TripleDES.decrypt(message, crypto_key, { 33 iv: crypto_iv, 34 mode: CryptoJS.mode.CBC, 35 padding: CryptoJS.pad.Pkcs7 36 }); 37 return decrypt_str.toString(CryptoJS.enc.Utf8); 38 } 39 40 module.exports = { 41 des_encrypt: des_encrypt, 42 des_decrypt: des_decrypt 43 }
4.文件用法:
import { des_encrypt, des_decrypt } from '@/utils/des/des.js' // 引用路径根据自己的文件结构而定
.........
//具体用法
var aaa = des_encrypt('12345678')
console.log(des_encrypt('12345678', ))
console.log(des_decrypt(aaa, 'key'))
目录结构
本文参考自JahanGU的博客中uni-app使用DES加密解密数据文章,感谢原作者