1. Einleitung
1. AES-Verschlüsselung, in der Kryptographie auch als Rijndael-Verschlüsselung bekannt, ist ein von der US-Bundesregierung übernommener Blockverschlüsselungsstandard. Dieser Standard ersetzt den ursprünglichen DES. Er wurde von vielen Parteien analysiert und ist weltweit weit verbreitet. Advanced Encryption Standard hat sich zu einem der beliebtesten Algorithmen für die Verschlüsselung mit symmetrischen Schlüsseln entwickelt.
2. Die Blocklänge von AES ist auf 128 Bit festgelegt und die Schlüssellänge kann 128, 192 oder 256 Bit betragen, während die von Rijndael verwendete Schlüssel- und Blocklänge ein ganzzahliges Vielfaches von 32 Bit sein kann. 128 Bit ist die Untergrenze und 256 Bit die Obergrenze. Einschließlich AES-ECB, AES-CBC, AES-CTR, AES-OFB, AES-CFB.
3. Hier akzeptieren wir nur die häufig verwendete ECB-Methode + pkcs7padding (derselbe Wert wie pkcs5padding)-Padding-Verschlüsselung.
2. Anwendung
1.Verwendung von AES in NodeJS
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.Verwendung von AES in Javascript
Laden Sie die Bibliothek eines Drittanbieters herunter Crypto-js.js-Git-Adresse: https://github.com/brix/crypto-js
Fügen Sie crypto-js.js unter src ein. Der Verschlüsselungscode lautet wie folgt:
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));
Das Obige ist Der gesamte Inhalt dieses Artikels soll für das Studium aller hilfreich sein.
Ausführlichere Artikel zur AES-Verschlüsselung in NodeJS und Javascript finden Sie auf der chinesischen PHP-Website!