亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript實現(xiàn)加密與解密詳解

 更新時間:2022年06月03日 10:08:06   作者:springsnow  
這篇文章介紹了JavaScript實現(xiàn)加密與解密詳解的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

目前原生JS貌似并沒有提供MD5計算相關(guān)的函數(shù)方法,只能自己實現(xiàn)或者使用前輩大神寫好的。

一、使用crypto.js庫進行加密

GitHub的 https://github.com/brix/crypto-js 上下載該js。

它可以單獨引入所需要加密方式的js;也可以引入一個crypto-js.js 這個文件,它相當(dāng)于引入了所有的加密方式。

用法:

<script type="text/javascript" src="path-to/bower_components/crypto-js/crypto-js.js"></script>
<script type="text/javascript">
    var encrypted = CryptoJS.AES(...);
    var encrypted = CryptoJS.SHA256(...);
</script>

1、舉例:

Hash加密:

//加密實例一
  console.log("加密結(jié)果一 MD5:"+CryptoJS.MD5("你好")); 
  
//加密實例二  
var pwd="passwor";
console.log("加密結(jié)果二 Hmac-MD5:   "+CryptoJS.HmacMD5("你好",pwd));

AES對稱加密:

普通文本加密

// 加密
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();

// 解密
var bytes  = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
var originalText = bytes.toString(CryptoJS.enc.Utf8);

console.log(originalText); // 'my message'

對象加密

var data = [{id: 1}, {id: 2}]

// 加密
var ciphertext = CryptoJS.AES.encrypt(JSON.stringify(data), 'secret key 123').toString();

// 解密
var bytes  = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
var decryptedData = JSON.parse(bytes.toString(CryptoJS.enc.Utf8));

console.log(decryptedData); // [{id: 1}, {id: 2}]

Custom Key and IV

var key = CryptoJS.enc.Utf8.parse('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'); //密鑰 
var iv  = CryptoJS.enc.Utf8.parse('1234567812345678');
// 加密
var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });

// 解密
var decrypted =CryptoJS.AES.decrypt(encrypted,key,
        {
            iv:iv,
            mode:CryptoJS.mode.CBC,
            padding:CryptoJS.pad.Pkcs7
        });
var originalText = decrypted.toString(CryptoJS.enc.Utf8); 

Block Modes and Padding

var key  = CryptoJS.enc.Utf8.parse('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');  //密鑰 
var iv   = CryptoJS.enc.Utf8.parse('1234567812345678');
var encrypted =CryptoJS.AES.encrypt("Message", ,key,
        {
            iv:iv,
            mode:CryptoJS.mode.CBC,
            padding:CryptoJS.pad.Pkcs7
        }); //返回的是base64格式的密文

2、API

See: https://cryptojs.gitbook.io/docs/

編碼工具:

var words = CryptoJS.enc.Base64.parse("SGVsbG8sIFdvcmxkIQ==");
?var base64 = CryptoJS.enc.Base64.stringify(words);
?
var words = CryptoJS.enc.Hex.parse("48656c6c6f2c20576f726c6421");
?var hex = CryptoJS.enc.Hex.stringify(words);
?
var words = CryptoJS.enc.Utf8.parse("");
?var utf8 = CryptoJS.enc.Utf8.stringify(words);

二、使用JavaScript-MD5庫進行加密

GitHub的 https://github.com/blueimp/JavaScript-MD5 上下載該js。

舉例:

Calculate the (hex-encoded) MD5 hash of a given string value:

var hash = md5('value') // "2063c1608d6e0baf80249c42e2be5804"
var v1= md5('{"name":"嘻嘻嘻嘻嘻嘻嘻嘻嘻","age":22}'); //56b21847ed32d2d96cf74077b22342eb

Calculate the (hex-encoded) HMAC-MD5 hash of a given string value and key:

var hash = md5('value', 'key') // "01433efd5f16327ea4b31144572c67f6"

Calculate the raw MD5 hash of a given string value:

var hash = md5('value', null, true)

Calculate the raw HMAC-MD5 hash of a given string value and key:

var hash = md5('value', 'key', true)

到此這篇關(guān)于JavaScript實現(xiàn)加密與解密詳解的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 寫了10年的Javascript也未必全了解的連續(xù)賦值運算

    寫了10年的Javascript也未必全了解的連續(xù)賦值運算

    很喜歡 蔡蔡 的這個標(biāo)題,實際蔡蔡已經(jīng)分析過了,這里借用了?;蛟S有點標(biāo)題黨的意思??赐昃椭?。
    2011-03-03
  • document節(jié)點對象的獲取方式示例介紹

    document節(jié)點對象的獲取方式示例介紹

    如果要操作一個元素,首先要獲取到它,下面為大家介紹下document節(jié)點對象的獲取方式,感興趣的朋友不要錯過
    2013-12-12
  • JS實現(xiàn)五星好評效果

    JS實現(xiàn)五星好評效果

    這篇文章主要為大家詳細介紹了JS實現(xiàn)五星好評效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 微信小程序使用websocket通訊的demo,含前后端代碼,親測可用

    微信小程序使用websocket通訊的demo,含前后端代碼,親測可用

    這篇文章主要介紹了微信小程序使用websocket通訊的demo,含前后端代碼,親測可用,需要的朋友可以參考下
    2019-05-05
  • 完美解決AJAX跨域問題

    完美解決AJAX跨域問題

    我看到過很多人不愿意去正視ajax所存在的技術(shù)瓶頸,其實AJAX更應(yīng)該是Ajax而不是AJAX,突出第一個A是想強調(diào)其實AJAX發(fā)揚的是一種異步傳輸?shù)姆椒?,而不是具體到底使用了哪種技術(shù)
    2013-11-11
  • 微信小程序?qū)崿F(xiàn)頁面導(dǎo)航的方法詳解

    微信小程序?qū)崿F(xiàn)頁面導(dǎo)航的方法詳解

    這篇文章主要為大家詳細介紹一下微信小程序?qū)崿F(xiàn)頁面導(dǎo)航的幾種方法以及幫助大家掌握如何使用頁面之間的導(dǎo)航跳轉(zhuǎn),感興趣的可以了解一下
    2022-07-07
  • JS實現(xiàn)彈出浮動窗口(支持鼠標(biāo)拖動和關(guān)閉)實例詳解

    JS實現(xiàn)彈出浮動窗口(支持鼠標(biāo)拖動和關(guān)閉)實例詳解

    這篇文章主要介紹了JS實現(xiàn)彈出浮動窗口,可支持鼠標(biāo)拖動和關(guān)閉的功能,界面美觀大方,涉及javascript動態(tài)創(chuàng)建對話框的相關(guān)技巧,需要的朋友可以參考下
    2015-08-08
  • html5 canvas js(數(shù)字時鐘)實例代碼

    html5 canvas js(數(shù)字時鐘)實例代碼

    這篇文章主要介紹了html5 canvas js(數(shù)字時鐘)實例代碼,有需要的朋友可以參考一下
    2013-12-12
  • JavaScript制作簡單網(wǎng)頁計算器

    JavaScript制作簡單網(wǎng)頁計算器

    這篇文章主要為大家詳細介紹了JavaScript制作簡單網(wǎng)頁計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • javascript執(zhí)行上下文詳解

    javascript執(zhí)行上下文詳解

    執(zhí)行上下文可以說是js代碼執(zhí)行的一個環(huán)境,存放了代碼執(zhí)行所需的變量,變量查找的作用域鏈規(guī)則以及this指向等。同時,它也是js很底層的東西,很多的問題如變量提升、作用域鏈和閉包等都可以在執(zhí)行上下文中找到答案,所以這也是我們學(xué)習(xí)執(zhí)行上下文的原因
    2023-05-05

最新評論