最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中使用crypto-js AES對稱加密算法實(shí)現(xiàn)加密解密

 更新時(shí)間:2022年03月24日 09:08:44   作者:~疆  
?在數(shù)字加密算法中,通過可劃分為對稱加密和非對稱加密,本文主要介紹了Vue中使用crypto-js AES對稱加密算法實(shí)現(xiàn)加密解密,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

 在數(shù)字加密算法中,通過可劃分為對稱加密非對稱加密

對稱加密:如AES,DES,3DES

含義:加密和解密使用的是同一把鑰匙。密鑰不能在網(wǎng)絡(luò)中傳輸,避免被攔截。如果要傳輸,必須要對密鑰進(jìn)行非對稱加密再加密一次。

優(yōu)點(diǎn):算法簡單,加密解密容易,效率高,執(zhí)行快。

缺點(diǎn):相對來說不算特別安全,只有一把鑰匙,密文如果被攔截,且密鑰也被劫持,那么,信息很容易被破譯。

非對稱加密:如RSA DSA RCC

含義:有兩個鑰匙,及公鑰(Public Key)和私鑰(Private Key)。公鑰和私鑰是成對的存在,如果對原文使用公鑰加密,則只能使用對應(yīng)的私鑰才能解密。通過私鑰經(jīng)過一系列算法是可以推導(dǎo)出公鑰的,但是無法通過公鑰反向推倒出私鑰,這個過程的單向的。

優(yōu)點(diǎn):安全,即使密文被攔截、公鑰被獲取,但是無法獲取到私鑰,也就無法破譯密文。作為接收方,務(wù)必要保管好自己的密鑰。

缺點(diǎn):加密算法及其復(fù)雜,安全性依賴算法與密鑰,而且加密和解密效率很低。

 下載crypto-js

cnpm i -S crypto-js

局部引用

import CryptoJS from "crypto-js";

加密解密數(shù)據(jù)

前端CBC模式或者ECB模式下的填充方式 Pkcs7,對應(yīng)后端AES算法模式中的 PKCS5Padding 填充方式

AES算法的ECB模式加密-設(shè)置秘鑰

ECB(Electronic Code Book電子密碼本)模式

優(yōu)點(diǎn):

  • 簡單;
  • 有利于并行計(jì)算;
  • 誤差不會被擴(kuò)散; 

缺點(diǎn):  

  • 不能隱藏明文的模式
  • 可能對明文進(jìn)行主動攻擊

因此,此模式適于加密小消息。 

秘鑰必須為16進(jìn)制

encryptData() {
      // 此處key為16進(jìn)制
      let key = '385f33cb91484b04a177828829081ab7';
      console.log('密鑰:', key);
      // key格式化處理
      key = CryptoJS.enc.Utf8.parse(key);
      // 加密內(nèi)容
      const polygonGeojson = {
        type: 'Feature',
        properties: {},
        geometry: {
          type: 'Polygon',
          coordinates: [
            [
              [106, 33],
              [108.03955078125, 32.2313896627376],
              [108.25927734375, 33.15594830078649],
              [106, 33]
            ]
          ]
        }
      };
      const content = JSON.stringify(polygonGeojson);
      console.log('加密前:', polygonGeojson);
      // 加密方法
      const encryptedContent = CryptoJS.AES.encrypt(content, key, {
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
      });
      const encStr = encryptedContent.ciphertext.toString();
      console.log('加密后:', encStr);
      // 解密方法
      const decryptedContent = CryptoJS.AES.decrypt(
        CryptoJS.format.Hex.parse(encStr),
        key,
        {
          mode: CryptoJS.mode.ECB,
          padding: CryptoJS.pad.Pkcs7
        }
      );
      console.log(
        '解密:',
        JSON.parse(CryptoJS.enc.Utf8.stringify(decryptedContent))
      );
    }

AES算法的CBC模式加密-設(shè)置秘鑰和偏移量

CBC(Cipher Block Chaining,加密塊鏈)模式 

優(yōu)點(diǎn):  

  • 不容易主動攻擊
  • 安全性好于ECB
  • 適合傳輸長度長的報(bào)文,是SSL、IPSec的標(biāo)準(zhǔn)。 

缺點(diǎn):  

  • 不利于并行計(jì)算
  • 誤差傳遞
  • 需要初始化向量IV

CBC模式前、后端需要確定偏移量的值,并且保持一致,這樣才能確保后端解密成功。

    encryptData() {
      // 此處key為16進(jìn)制
      let key = '385f33cb91484b04a177828829081ab7';
      console.log('密鑰:', key);
      // key格式化處理
      key = CryptoJS.enc.Utf8.parse(key);
 
      // 偏移量長度為16位, 注:偏移量需要與后端定義好,保證一致
      let iv_key = '37fa77f6a3b0462d';
      let iv = CryptoJS.enc.Utf8.parse(iv_key);
      // 加密內(nèi)容
      const polygonGeojson = {
        type: 'Feature',
        properties: {},
        geometry: {
          type: 'Polygon',
          coordinates: [
            [
              [106, 33],
              [108.03955078125, 32.2313896627376],
              [108.25927734375, 33.15594830078649],
              [106, 33]
            ]
          ]
        }
      };
      const content = JSON.stringify(polygonGeojson);
      console.log('加密前:', polygonGeojson);
      // 加密方法
      const encryptedContent = CryptoJS.AES.encrypt(content, key, {
        iv: iv,
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
      });
      const encStr = encryptedContent.ciphertext.toString();
      console.log('加密后:', encStr);
      // 解密方法
      const decryptedContent = CryptoJS.AES.decrypt(
        CryptoJS.format.Hex.parse(encStr),
        key,
        {
          iv: iv,
          mode: CryptoJS.mode.ECB,
          padding: CryptoJS.pad.Pkcs7
        }
      );
      console.log(
        '解密:',
        JSON.parse(CryptoJS.enc.Utf8.stringify(decryptedContent))
      );
    }

參考:

https://www.cnblogs.com/cndarren/p/15108270.html

https://blog.csdn.net/qq_40323256/article/details/116947888

到此這篇關(guān)于Vue中使用crypto-js AES對稱加密算法實(shí)現(xiàn)加密解密的文章就介紹到這了,更多相關(guān)Vue crypto-js AES對稱加密解密內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue項(xiàng)目打包自動更新版本號且自動刷新緩存的方法示例

    vue項(xiàng)目打包自動更新版本號且自動刷新緩存的方法示例

    這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目打包自動更新版本號且自動刷新緩存的相關(guān)資料,文中通過代碼及圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-11-11
  • vue中可以綁定多個事件嗎

    vue中可以綁定多個事件嗎

    這篇文章主要介紹了vue中可以綁定多個事件嗎,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Element中el-form表單舉例詳解

    Element中el-form表單舉例詳解

    Form組件提供了表單驗(yàn)證的功能,只需要通過屬性傳入約定的驗(yàn)證規(guī)則,并將Form-Item的屬性設(shè)置為需校驗(yàn)的字段名即可,下面這篇文章主要給大家介紹了關(guān)于Element中el-form表單的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue elementUI select下拉框如何設(shè)置默認(rèn)值

    vue elementUI select下拉框如何設(shè)置默認(rèn)值

    這篇文章主要介紹了vue elementUI select下拉框如何設(shè)置默認(rèn)值問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue項(xiàng)目中token驗(yàn)證登錄(前端部分)

    Vue項(xiàng)目中token驗(yàn)證登錄(前端部分)

    這篇文章主要為大家詳細(xì)介紹了Vue項(xiàng)目中token驗(yàn)證登錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • element tree樹形組件回顯數(shù)據(jù)問題解決

    element tree樹形組件回顯數(shù)據(jù)問題解決

    本文主要介紹了element tree樹形組件回顯數(shù)據(jù)問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 簡述Vue中容易被忽視的知識點(diǎn)

    簡述Vue中容易被忽視的知識點(diǎn)

    這篇文章主要介紹了簡述Vue中容易被忽視的知識點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 詳解通過JSON數(shù)據(jù)使用VUE.JS

    詳解通過JSON數(shù)據(jù)使用VUE.JS

    本篇文章主要介紹了詳解通過JSON數(shù)據(jù)使用VUE.JS,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • vue搜索頁開發(fā)實(shí)例代碼詳解(熱門搜索,歷史搜索,淘寶接口演示)

    vue搜索頁開發(fā)實(shí)例代碼詳解(熱門搜索,歷史搜索,淘寶接口演示)

    這篇文章主要介紹了vue搜索頁開發(fā)實(shí)例(熱門搜索,歷史搜索,淘寶接口演示),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 前端vue播放m3u8、flv、mp4視頻的方法示例

    前端vue播放m3u8、flv、mp4視頻的方法示例

    這篇文章主要給大家介紹了關(guān)于前端vue播放m3u8、flv、mp4視頻的方法,隨著前端大屏頁面的逐漸壯大,客戶的需求也越來越多,大屏上面展示的事物也越來越豐富,需要的朋友可以參考下
    2023-07-07

最新評論

廉江市| 奇台县| 肇庆市| 梧州市| 教育| 依兰县| 婺源县| 广昌县| 南召县| 漳浦县| 化德县| 庄浪县| 太康县| 东辽县| 噶尔县| 大邑县| 正镶白旗| 霞浦县| 沾益县| 北安市| 双柏县| 开平市| 哈巴河县| 大邑县| 景宁| 神农架林区| 高尔夫| 潢川县| 花垣县| 油尖旺区| 个旧市| 鄂托克前旗| 弥勒县| 阳原县| 弋阳县| 枞阳县| 修水县| 五河县| 奉贤区| 中阳县| 临漳县|