前端項目中使用aes加密解密-對稱加密


本文介紹的rsa加解密方法,適合react,vue,angular框架的前端項目

 

1. 安裝cryto-js:npm install crypto-js

2. rsa加密解密函數:(cbc模式,base64格式,zeroPadding,16位)

 1 import CryptoJS from 'crypto-js/crypto-js'
 2 
 3 // 默認的 KEY 與 iv 如果沒有給
 4 const KEY = CryptoJS.enc.Utf8.parse("1234567890123456");
 5 const IV = CryptoJS.enc.Utf8.parse('1234567890123456');
 6 /**
 7  * AES加密 :字符串 key iv  返回base64 
 8  */
 9 export function Encrypt(word, keyStr, ivStr) {
10   let key = KEY
11   let iv = IV
12 
13   if (keyStr) {
14     key = CryptoJS.enc.Utf8.parse(keyStr);
15     iv = CryptoJS.enc.Utf8.parse(ivStr);
16   }
17 
18   let srcs = CryptoJS.enc.Utf8.parse(word);
19   var encrypted = CryptoJS.AES.encrypt(srcs, key, {
20     iv: iv,
21     mode: CryptoJS.mode.CBC,
22     padding: CryptoJS.pad.ZeroPadding
23   });
24  // console.log("-=-=-=-", encrypted.ciphertext)
25   return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
26 
27 }
28 /**
29  * AES 解密 :字符串 key iv  返回base64 
30  *
31  */
32 export function Decrypt(word, keyStr, ivStr) {
33   let key  = KEY
34   let iv = IV
35 
36   if (keyStr) {
37     key = CryptoJS.enc.Utf8.parse(keyStr);
38     iv = CryptoJS.enc.Utf8.parse(ivStr);
39   }
40 
41   let base64 = CryptoJS.enc.Base64.parse(word);
42   let src = CryptoJS.enc.Base64.stringify(base64);
43 
44   var decrypt = CryptoJS.AES.decrypt(src, key, {
45     iv: iv,
46     mode: CryptoJS.mode.CBC,
47     padding: CryptoJS.pad.ZeroPadding
48   });
49 
50   var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
51   return decryptedStr.toString();
52 }

3. 在組件中使用:

1 import {Decrypt, Encrypt} from '剛剛封裝的js'
2 
3 var parm1 = Decrypt('加密的字段', key, iv)
4 console.log('加密之后的字段:', parm1)
5 
6 var parm2 = Decrypt('解密的字段', key, iv)
7 console.log('解密之后的字段:', parm2)

 

備注:密鑰最好是數字,不然可能會報錯(報代碼的錯誤,其實代碼沒問題)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM