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加密解密数据文章,感谢原作者

posted @ 2020-11-21 15:20  打工人001  阅读(2305)  评论(0编辑  收藏  举报