1. 程式人生 > 實用技巧 >uniapp前端傳參加密(二)(DES)

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加密解密資料文章,感謝原作者