當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
nodejs与javascript中的aes加密
生活随笔
收集整理的這篇文章主要介紹了
nodejs与javascript中的aes加密
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介
1.aes加密簡單來說,在密碼學中又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。高級加密標準已然成為對稱密鑰加密中最流行的算法之一。
2.AES的區塊長度固定為128 比特,密鑰長度則可以是128,192或256比特;而Rijndael使用的密鑰和區塊長度可以是32位的整數倍,以128位為下限,256比特為上限。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。
具體的加密算法和模式的區別:點擊《AES加解密算法的模式介紹》查看。
3.在這里我們只接受常用的ECB方式 + pkcs7padding(與pkcs5padding值相同)填充加密。
?
應用
1.nodejs中aes的使用
var crypto = require('crypto');var aesutil = module.exports = {};/*** aes加密* @param data 待加密內容* @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 待解密內容* @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的使用
下載第三方庫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));?
總結
以上是生活随笔為你收集整理的nodejs与javascript中的aes加密的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 练习题P256
- 下一篇: struts的开发模式