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

前端如何利用CryptoJS實(shí)現(xiàn)數(shù)據(jù)信息的加密詳解

 更新時(shí)間:2023年11月15日 10:34:47   作者:花花世界迷人眼睛  
這篇文章主要給大家介紹了關(guān)于前端如何利用CryptoJS實(shí)現(xiàn)數(shù)據(jù)信息加密的相關(guān)資料,前端解密解密工具Cryptojs提供了前端加密解密的工作,包括常用的MD5、BASE64、SHA1、AES等加密解密方法,需要的朋友可以參考下

安裝

npm install crypto-js

 引入

import CryptoJS from "crypto-js";

CryptoJS是一種常用的前端加密庫(kù),支持多種加密方式,以下是其中常用的幾種加密算法:

SHA256哈希算法 

SHA256是一種常見(jiàn)的哈希算法,可以生成一個(gè)256位的哈希值,通常用于數(shù)據(jù)簽名和身份驗(yàn)證等場(chǎng)合。使用CryptoJS的SHA256方法可以方便地計(jì)算SHA256哈希值。

SHA256哈希算法,它是一種單向加密算法,不提供解密方法。它的作用是將任意長(zhǎng)度的明文數(shù)據(jù),經(jīng)過(guò)哈希計(jì)算后生成一個(gè)固定長(zhǎng)度的哈希值。因?yàn)橐话闱闆r下哈希值和原始數(shù)據(jù)之間的關(guān)系不可逆

//加密
const plaintilit = 'hello world'
const hash = CryptoJS.SH256(plaintilit).toString
console.log(hash)  // "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"

AES對(duì)稱加密算法

AES是一種常見(jiàn)的對(duì)稱加密算法,通過(guò)相同的密鑰進(jìn)行加密和解密,常用于數(shù)據(jù)保護(hù)和機(jī)密信息存儲(chǔ)等場(chǎng)合。使用CryptoJS的AES方法可以方便地進(jìn)行AES加密和解密操作。

key是對(duì)稱加密算法的核心參數(shù),同一個(gè)明文和密鑰加密后得到的密文是相同的,因此密鑰必須保密并且不易被破解。key的長(zhǎng)度可以是128位、192位或256位,不同長(zhǎng)度的key對(duì)應(yīng)著不同的安全級(jí)別。

iv是用于增加加密強(qiáng)度的參數(shù),它需要與key一起作為輸入?yún)?shù)傳遞給加密算法。iv的長(zhǎng)度為128位,它在每次加密時(shí)都會(huì)改變,并與key一起參與加密過(guò)程。iv的作用是將相同的明文使用不同的iv加密后生成不同的密文,從而增加破解的難度和安全性。

//設(shè)置key和對(duì)應(yīng)的iv
//在CryptoJS中,CryptoJS.enc.Utf8.parse方法用于將字符串轉(zhuǎn)換為UTF-8編碼的字節(jié)數(shù)組,這是因?yàn)榧铀?
//法通常需要將字符串轉(zhuǎn)換為字節(jié)流進(jìn)行處理。在對(duì)字符串進(jìn)行加密或解密之前,需要先將其轉(zhuǎn)換為字節(jié)數(shù)組。

const plaintitle = 'hello world'
const key = CryptoJS.enc.Utf8.parse('zxcvbnm')
const iv = CryptoJS.enc.Utf8.parse('zxcvbnm')

// 加密
const ciphertext = CryptoJS.AES.encrypt(plaintitle , key, { iv: iv })
console.log(ciphertext.toString())  // "U2FsdGVkX1/z9g+JQzthGtFlKeZeBjJ92Z1nxv5vxsw="

// 解密
const decrypted = CryptoJS.AES.decrypt(ciphertext, key, { iv: iv })
console.log(decrypted.toString(CryptoJS.enc.Utf8))  // "hello world"

 HMAC哈希消息認(rèn)證碼

HMAC是一種基于哈希函數(shù)和密鑰的消息認(rèn)證碼算法,可以用于驗(yàn)證數(shù)據(jù)完整性和真實(shí)性。使用CryptoJS的HmacSHA256方法可以方便地計(jì)算HMAC-SHA256哈希值。

const plaintitle = 'hello world'
const key = CryptoJS.enc.Utf8.parse('1234567890123456')
const hmac = CryptoJS.HmacSHA256(plaintitle , key).toString()
console.log(hmac)  // "f7e329a7c587374e4ed7c80b5be95c9a5997c84da20f5aaede26327bd2b705d8"

 計(jì)算MD5哈希值

在使用toString()方法將其轉(zhuǎn)換為字符串類型時(shí),我們傳入了CryptoJS.enc.Hex參數(shù),表示將其轉(zhuǎn)換為十六進(jìn)制字符串格式。

var hash = CryptoJS.MD5("Message");
console.log(hash.toString(CryptoJS.enc.Hex)); // 輸出16進(jìn)制格式的md5哈希值

記錄一些常用的加密方式

base64轉(zhuǎn)碼和解碼 

 let str = 'ImGod';
 let str64 = window.btoa(str);
console.log('轉(zhuǎn)化后:'+str64);//SW1HB2Q=
let jm = window.atob(str64);
console.log('解碼后:'+jm);//ImGod

js編碼

encodeURIComponent會(huì)將特殊字符(除了字母、數(shù)字、標(biāo)點(diǎn)符號(hào)和某些保留字符以外的所有字符)都轉(zhuǎn)換為UTF-8編碼的格式,然后再將其轉(zhuǎn)換為16進(jìn)制值。

decodeURIComponent是JavaScript中的一個(gè)內(nèi)置函數(shù),用于將使用encodeURIComponent函數(shù)編碼的字符串進(jìn)行解碼。

const text = '阿拉斯加'
const encodedText = encodeURIComponent(text)
console.log(encodedText,'url編碼');

const textTitle = decodeURIComponent(encodedText)
console.log(textTitle,'url解碼');

總結(jié) 

到此這篇關(guān)于前端如何利用CryptoJS實(shí)現(xiàn)數(shù)據(jù)信息加密的文章就介紹到這了,更多相關(guān)CryptoJS實(shí)現(xiàn)數(shù)據(jù)信息加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS如何顯示防盜鏈的外站圖片技巧示例

    JS如何顯示防盜鏈的外站圖片技巧示例

    通常在開(kāi)發(fā)測(cè)試環(huán)節(jié),一些資源圖片會(huì)出現(xiàn)防盜鏈的錯(cuò)誤提示,本文就通過(guò)前端基礎(chǔ)技術(shù),實(shí)現(xiàn)基本的圖片跨站顯示效果,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • JavaScript操作table表格:遍歷、列讀取、刪除行、更新列等動(dòng)態(tài)管理

    JavaScript操作table表格:遍歷、列讀取、刪除行、更新列等動(dòng)態(tài)管理

    本文詳細(xì)介紹使用JavaScript操作HTML表格的各種技巧,包括遍歷、指定列讀取、刪除行、根據(jù)按鈕更新特定列內(nèi)容,以及購(gòu)物車功能實(shí)現(xiàn),通過(guò)實(shí)例展示如何在網(wǎng)頁(yè)上動(dòng)態(tài)管理和更新表格數(shù)據(jù)
    2025-05-05
  • 一個(gè)兼容FF的智能超長(zhǎng)文章分頁(yè)JS

    一個(gè)兼容FF的智能超長(zhǎng)文章分頁(yè)JS

    這篇文章主要介紹了一個(gè)兼容FF的智能超長(zhǎng)文章分頁(yè)JS的相關(guān)資料,需要的朋友可以參考下
    2007-07-07
  • javascript 利用arguments實(shí)現(xiàn)可變長(zhǎng)參數(shù)

    javascript 利用arguments實(shí)現(xiàn)可變長(zhǎng)參數(shù)

    在C#中,有可變長(zhǎng)參數(shù)params[],但是在js中,如何實(shí)現(xiàn)這種可變參數(shù)呢?本片文章主要介紹利用arguments,實(shí)現(xiàn)可變長(zhǎng)參數(shù)。有需要的請(qǐng)參考下
    2016-11-11
  • JavaScript數(shù)字?jǐn)?shù)組的13個(gè)實(shí)用小技巧

    JavaScript數(shù)字?jǐn)?shù)組的13個(gè)實(shí)用小技巧

    數(shù)組是JS最常見(jiàn)的一種數(shù)據(jù)結(jié)構(gòu),咱們?cè)陂_(kāi)發(fā)中也經(jīng)常用到,在這篇文章中,提供一些小技巧,幫助咱們提高開(kāi)發(fā)效率,這篇文章主要給大家分享介紹了關(guān)于JavaScript數(shù)字?jǐn)?shù)組的13個(gè)實(shí)用小技巧,需要的朋友可以參考下
    2023-11-11
  • JavaScript ES 模塊的使用

    JavaScript ES 模塊的使用

    這篇文章主要介紹了JavaScript ES 模塊的使用,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2020-11-11
  • JavaScript中if、else?if、else和switch的語(yǔ)法、用法及注意事項(xiàng)

    JavaScript中if、else?if、else和switch的語(yǔ)法、用法及注意事項(xiàng)

    這篇文章主要介紹了JavaScript中的條件判斷語(yǔ)句,包括if、elseif、else和switch的基本語(yǔ)法、用法及注意事項(xiàng),通過(guò)這些語(yǔ)句,可以根據(jù)不同的條件執(zhí)行相應(yīng)的代碼塊,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • javascript重寫alert方法的實(shí)例代碼

    javascript重寫alert方法的實(shí)例代碼

    最近因?yàn)樵趂lash項(xiàng)目中遇到as調(diào)用js函數(shù)馬上彈出alert,在火狐瀏覽器下會(huì)卡死瀏覽器。介于這樣我們重寫alert,讓alert彈出一個(gè)自定義的div彈層,來(lái)實(shí)現(xiàn)提示效果!
    2013-03-03
  • 基于iScroll實(shí)現(xiàn)下拉刷新和上滑加載效果

    基于iScroll實(shí)現(xiàn)下拉刷新和上滑加載效果

    這篇文章主要為大家詳細(xì)介紹了基于iScroll實(shí)現(xiàn)下拉刷新和上滑加載效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 淺談js for循環(huán)輸出i為同一值的問(wèn)題

    淺談js for循環(huán)輸出i為同一值的問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺談js for循環(huán)輸出i為同一值的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03

最新評(píng)論

云林县| 红河县| 乌兰县| 曲阳县| 霍林郭勒市| 景谷| 南靖县| 河北区| 隆昌县| 南通市| 合阳县| 瓮安县| 南宫市| 谷城县| 龙门县| 玉门市| 茂名市| 汤原县| 金湖县| 集安市| 博野县| 千阳县| 基隆市| 千阳县| 郑州市| 客服| 吴桥县| 镇雄县| 嘉定区| 南康市| 溧水县| 遂昌县| 陇南市| 峨山| 伊宁县| 寻甸| 宣汉县| 荔波县| 乌审旗| 宣威市| 巨野县|