日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

nodejs与javascript中的aes加密

發(fā)布時(shí)間:2025/3/11 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodejs与javascript中的aes加密 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(jiǎn)介

1.aes加密簡(jiǎn)單來(lái)說(shuō),在密碼學(xué)中又稱Rijndael加密法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來(lái)替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。高級(jí)加密標(biāo)準(zhǔn)已然成為對(duì)稱密鑰加密中最流行的算法之一。

2.AES的區(qū)塊長(zhǎng)度固定為128 比特,密鑰長(zhǎng)度則可以是128,192或256比特;而Rijndael使用的密鑰和區(qū)塊長(zhǎng)度可以是32位的整數(shù)倍,以128位為下限,256比特為上限。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。

  具體的加密算法和模式的區(qū)別:點(diǎn)擊《AES加解密算法的模式介紹》查看。

3.在這里我們只接受常用的ECB方式 + pkcs7padding(與pkcs5padding值相同)填充加密。

?

應(yīng)用

1.nodejs中aes的使用

var crypto = require('crypto');var aesutil = module.exports = {};/*** aes加密* @param data 待加密內(nèi)容* @param key 必須為32位私鑰* @returns {string}*/ aesutil.encryption = function (data, key, iv) {iv = iv || "";var clearEncoding = 'utf8';var cipherEncoding = 'base64';var cipherChunks = [];var cipher = crypto.createCipheriv('aes-256-ecb', key, iv);cipher.setAutoPadding(true);cipherChunks.push(cipher.update(data, clearEncoding, cipherEncoding));cipherChunks.push(cipher.final(cipherEncoding));return cipherChunks.join(''); }/*** aes解密* @param data 待解密內(nèi)容* @param key 必須為32位私鑰* @returns {string}*/ aesutil.decryption = function (data, key, iv) {if (!data) {return "";}iv = iv || "";var clearEncoding = 'utf8';var cipherEncoding = 'base64';var cipherChunks = [];var decipher = crypto.createDecipheriv('aes-256-ecb', key, iv);decipher.setAutoPadding(true);cipherChunks.push(decipher.update(data, cipherEncoding, clearEncoding));cipherChunks.push(decipher.final(clearEncoding));return cipherChunks.join(''); }

?

2.javascript中aes的使用

下載第三方庫(kù)Crypto-js.js git地址:https://github.com/brix/crypto-js

引入src下的crypto-js.js,加密代碼如下:

var key = "12345678" //秘鑰必須為:8/16/32位 var message = "123456";//加密 var encrypt = CryptoJS.AES.encrypt(message, CryptoJS.enc.Utf8.parse(key), {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7 }); console.log("value: "+encrypt);//解密 var decrypt = CryptoJS.AES.decrypt(encrypt, CryptoJS.enc.Utf8.parse(key), {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7 }); console.log("value: "+decrypt.toString(CryptoJS.enc.Utf8));

?

總結(jié)

以上是生活随笔為你收集整理的nodejs与javascript中的aes加密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。