1。はじめに
1。暗号化のAES暗号化は、米国連邦政府が採用したブロック暗号化標準であるRijndael暗号化法としても知られています。この標準は、元のDESを交換するために使用され、複数の関係者によって分析されており、世界中で広く使用されています。高度な暗号化標準は、対称キー暗号化で最も人気のあるアルゴリズムの1つになりました。
2。AEのブロック長は128ビットに固定され、キーの長さは128、192、または256ビットになります。 Rijndaelが使用するキーとブロックの長さは、32ビットの整数倍で、128ビット、上限として256ビットがあります。 AES-ECB、AES-CBC、AES-CTR、AES-ofb、AES-CFBを含む。
3.ここでは、暗号化を埋めるために一般的に使用されるECBメソッド + PKCS7パディング(PKCS5パディングと同じ値)のみを受け入れます。
2。アプリケーション
1.NodeJSのAESの使用
var crypto = require( 'crypto'); var aesutil = module.exports = {};/*** aes encryption* @param data content to necrypted* @paramキーは@returns {string}**/aesutil.encryption = data、key、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)); cipherchunks.join( '');}/*** aes decryption* @paramデータコンテンツを復号化する* @paramキーは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)); 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メッセージ= "123456"; // encrypt var encrypt = cryptojs.aes.encrypt(message、cryptojs.enc.utf8.parse(key)、{mode:mode:cryptojs.mode.ecb、padding: CryptoJS.pad.Pkcs7});console.log("value: "+encrypt);//Decrypt 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));元の著者:Xi'an Wang Lei
元の出典:http://vipstone.cnblogs.com/
上記はこの記事に関するものです。すべての人の学習に役立つことを願っています。