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