vue AES加密(超詳細(xì))

2021-5-27    前端達(dá)人

第一步:


  1. //安裝
  2. npm install crypto-js --save-dev

第二步:在src目錄下新建個(gè)放公用js文件夾(common),再建一個(gè)AES.js文件,例如:

第三步:在AES.js中填寫(xiě)如下代碼,key密鑰長(zhǎng)度則可以是128,192或256位(默認(rèn)情況下是128位),正常情況下固定16位數(shù)即可

 
  1. import CryptoJS from 'crypto-js';
  2. export default {
  3. //隨機(jī)生成指定數(shù)量的16進(jìn)制key
  4. generatekey(num) {
  5. let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  6. let key = "";
  7. for (var i = 0; i < num; i++) {
  8. let randomPoz = Math.floor(Math.random() * library.length);
  9. key += library.substring(randomPoz, randomPoz + 1);
  10. }
  11. return key;
  12. },
  13. //加密
  14. encrypt(word, keyStr) {
  15. keyStr = keyStr ? keyStr : 'abcdsxyzhkj12345'; //判斷是否存在ksy,不存在就用定義好的key
  16. var key = CryptoJS.enc.Utf8.parse(keyStr);
  17. var srcs = CryptoJS.enc.Utf8.parse(word);
  18. var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
  19. return encrypted.toString();
  20. },
  21. //解密
  22. decrypt(word, keyStr) {
  23. keyStr = keyStr ? keyStr : 'abcdsxyzhkj12345';
  24. var key = CryptoJS.enc.Utf8.parse(keyStr);
  25. var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
  26. return CryptoJS.enc.Utf8.stringify(decrypt).toString();
  27. }
  28. }

第四步:在需要的地方引入

import AES from "@/common/AES.js";

第五步:調(diào)用

 
  1. // var keys = AES.generatekey(16);
  2. //如果是對(duì)象/數(shù)組的話(huà),需要先JSON.stringify轉(zhuǎn)換成字符串
  3. // 不傳key值,就默認(rèn)使用上述定義好的key值
  4. var encrypts = AES.encrypt(JSON.stringify(cars));
  5. var dess = JSON.parse(AES.decrypt(encrypts));
  6. // var encrypts = AES.encrypt('1234asdasd');
  7. // var dess = AES.decrypt(encrypts);
  8. console.log(encrypts)
  9. console.log(encrypts.length)
  10. console.log(dess)

 

 

特別提示:當(dāng)解密的時(shí)候是為空的時(shí)候(也沒(méi)有報(bào)錯(cuò)),那么就一定是你的key長(zhǎng)度不符合規(guī)范, 可以調(diào)整為key長(zhǎng)度為16位。

 


藍(lán)藍(lán)設(shè)計(jì)建立了UI設(shè)計(jì)分享群,每天會(huì)分享國(guó)內(nèi)外的一些優(yōu)秀設(shè)計(jì),如果有興趣的話(huà),可以進(jìn)入一起成長(zhǎng)學(xué)習(xí),請(qǐng)掃碼藍(lán)小助,報(bào)下信息,藍(lán)小助會(huì)請(qǐng)您入群。歡迎您加入噢~~希望得到建議咨詢(xún)、商務(wù)合作,也請(qǐng)與我們聯(lián)系。

截屏2021-05-13 上午11.41.03.png


文章來(lái)源:csdn   

分享此文一切功德,皆悉回向給文章原作者及眾讀者.

免責(zé)聲明:藍(lán)藍(lán)設(shè)計(jì)尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問(wèn)題,請(qǐng)及時(shí)與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

藍(lán)藍(lán)設(shè)計(jì)m.sillybuy.com )是一家專(zhuān)注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶(hù)體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)



分享本文至:

日歷

鏈接

個(gè)人資料

存檔