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

vue項(xiàng)目中使用AES實(shí)現(xiàn)密碼加密解密(ECB和CBC兩種模式)

 更新時(shí)間:2019年08月12日 15:31:45   作者:艾歡歡  
這篇文章主要介紹了vue項(xiàng)目中使用AES實(shí)現(xiàn)密碼加密解密的方法,主要是通過(guò)ecb和cbc兩種模式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

vue項(xiàng)目中使用AES實(shí)現(xiàn)密碼加密解密

區(qū)別

ECB:是一種基礎(chǔ)的加密方式,密文被分割成分組長(zhǎng)度相等的塊(不足補(bǔ)齊),然后單獨(dú)一個(gè)個(gè)加密,一個(gè)個(gè)輸出組成密文。

CBC:是一種循環(huán)模式,前一個(gè)分組的密文和當(dāng)前分組的明文異或或操作后再加密,這樣做的目的是增強(qiáng)破解難度。(不容易主動(dòng)攻擊,安全性好于ECB,是SSL、IPSec的標(biāo)準(zhǔn))

代碼實(shí)現(xiàn)

先安裝 crypto-js

npm install crypto-js --save-dev

ECB模式:

import CryptoJS from "crypto-js";

export default {
 // 加密
 encrypt(word, keyStr) {
 keyStr = keyStr ? keyStr : "absoietlj32fai12";
 let key = CryptoJS.enc.Utf8.parse(keyStr);
 let srcs = CryptoJS.enc.Utf8.parse(word);
 let encrypted = CryptoJS.AES.encrypt(srcs, key, {
 mode: CryptoJS.mode.ECB,
 padding: CryptoJS.pad.Pkcs7
 });
 return encrypted.toString();
 },
 // 解密
 decrypt(word, keyStr) {
 keyStr = keyStr ? keyStr : "absoietlj32fai12";
 var key = CryptoJS.enc.Utf8.parse(keyStr);
 var decrypt = CryptoJS.AES.decrypt(word, key, {
 mode: CryptoJS.mode.ECB,
 padding: CryptoJS.pad.Pkcs7
 });
 return CryptoJS.enc.Utf8.stringify(decrypt).toString();
 }
};

CBC模式:

import CryptoJS from "crypto-js";

export default {
 // 加密
 encrypt(word, keyStr, ivStr) {
 keyStr = keyStr ? keyStr : "absoietlj32fai12";
 ivStr = ivStr ? ivStr : "absoietlj32fai12";
 let key = CryptoJS.enc.Utf8.parse(keyStr);
 let iv = CryptoJS.enc.Utf8.parse(ivStr);
 let srcs = CryptoJS.enc.Utf8.parse(word);

 let encrypted = CryptoJS.AES.encrypt(srcs, key, {
 iv,
 mode: CryptoJS.mode.CBC,
 padding: CryptoJS.pad.ZeroPadding
 });
 return encrypted.toString();
 },
 // 解密
 decrypt(word, keyStr, ivStr) {
 keyStr = keyStr ? keyStr : "absoietlj32fai12";
 ivStr = ivStr ? ivStr : "absoietlj32fai12";
 var key = CryptoJS.enc.Utf8.parse(keyStr);
 let iv = CryptoJS.enc.Utf8.parse(ivStr);

 var decrypt = CryptoJS.AES.decrypt(word, key, {
 iv,
 mode: CryptoJS.mode.CBC,
 padding: CryptoJS.pad.ZeroPadding
 });
 return decrypt.toString(CryptoJS.enc.Utf8);
 }
};

以上兩種模式中的 keyStr 的長(zhǎng)度要不小于14位,否則解密時(shí)會(huì)顯示空白

總結(jié)

以上所述是小編給大家介紹的vue項(xiàng)目中使用AES實(shí)現(xiàn)密碼加密解密(ECB和CBC兩種模式),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • 基于 Vue.js 2.0 酷炫自適應(yīng)背景視頻登錄頁(yè)面實(shí)現(xiàn)方式

    基于 Vue.js 2.0 酷炫自適應(yīng)背景視頻登錄頁(yè)面實(shí)現(xiàn)方式

    本文講述如何實(shí)現(xiàn)擁有酷炫背景視頻的登錄頁(yè)面,瀏覽器窗口隨意拉伸,背景視頻及前景登錄組件均能完美適配,背景視頻可始終鋪滿窗口,前景組件始終居中,視頻的內(nèi)容始終得到最大限度的保留,可以得到最好的視覺(jué)效果
    2018-01-01
  • 一文帶你掌握?Vue3.5常用特性

    一文帶你掌握?Vue3.5常用特性

    Vue3.5?發(fā)布已近半年,這篇文章主要來(lái)和大家技術(shù)一下它常用的新增和改動(dòng)特性,文中的示例代碼講解詳細(xì),有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • Vue3組合式API之getCurrentInstance詳解

    Vue3組合式API之getCurrentInstance詳解

    我們可以通過(guò)?getCurrentInstance這個(gè)函數(shù)來(lái)返回當(dāng)前組件的實(shí)例對(duì)象,也就是當(dāng)前vue這個(gè)實(shí)例對(duì)象,下面這篇文章主要給大家介紹了關(guān)于Vue3組合式API之getCurrentInstance的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • vue  elementUI 表單嵌套驗(yàn)證的實(shí)例代碼

    vue elementUI 表單嵌套驗(yàn)證的實(shí)例代碼

    這篇文章主要介紹了vue + elementUI 表單嵌套驗(yàn)證,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 解決el-upload批量上傳只執(zhí)行一次成功回調(diào)on-success的問(wèn)題

    解決el-upload批量上傳只執(zhí)行一次成功回調(diào)on-success的問(wèn)題

    這篇文章主要介紹了解決el-upload批量上傳只執(zhí)行一次成功回調(diào)on-success的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue3實(shí)現(xiàn)長(zhǎng)列表虛擬滾動(dòng)的示例代碼

    vue3實(shí)現(xiàn)長(zhǎng)列表虛擬滾動(dòng)的示例代碼

    本文主要介紹了vue3實(shí)現(xiàn)長(zhǎng)列表虛擬滾動(dòng)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Vue2 的12種組件通訊

    Vue2 的12種組件通訊

    之前文章我們描述給過(guò)Vue3 的七通信使用,今天中五篇文章我們?cè)賮?lái)看看Vue2 的通信使用寫(xiě)法的相關(guān)資料,需要的朋友可以參考下面文章的具體內(nèi)容
    2021-09-09
  • Vue.nextTick純干貨使用方法詳解

    Vue.nextTick純干貨使用方法詳解

    這篇文章主要為大家介紹了Vue.nextTick使用方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue實(shí)現(xiàn)商品加減計(jì)算總價(jià)的實(shí)例代碼

    vue實(shí)現(xiàn)商品加減計(jì)算總價(jià)的實(shí)例代碼

    這篇文章主要介紹了vue實(shí)現(xiàn)商品加減計(jì)算總價(jià)的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • 使用vue-infinite-scroll實(shí)現(xiàn)無(wú)限滾動(dòng)效果

    使用vue-infinite-scroll實(shí)現(xiàn)無(wú)限滾動(dòng)效果

    vue-infinite-scroll插件可以無(wú)限滾動(dòng)實(shí)現(xiàn)加載更多,其作用是是當(dāng)滾動(dòng)條滾動(dòng)到距離底部的指定高度時(shí)觸發(fā)某個(gè)方法。這篇文章主要介紹了用vue-infinite-scroll實(shí)現(xiàn)無(wú)限滾動(dòng)效果,需要的朋友可以參考下
    2018-06-06

最新評(píng)論

柘城县| 陕西省| 平顶山市| 临沂市| 崇信县| 县级市| 灵璧县| 平度市| 孙吴县| 许昌县| 隆子县| 梁山县| 蒙城县| 台北市| 敖汉旗| 寿阳县| 鄂托克旗| 济宁市| 新宾| 怀来县| 肃南| 西平县| 朝阳县| 正镶白旗| 同心县| 修文县| 蕉岭县| 都昌县| 九台市| 咸丰县| 云和县| 岐山县| 介休市| 石狮市| 崇文区| 八宿县| 星座| 无锡市| 布尔津县| 丹巴县| 闸北区|