1. Introducción
1. El cifrado AES, en criptografía, también se conoce como Método de Cifrado Rijndael, que es un estándar de cifrado de bloque adoptado por el gobierno federal de los Estados Unidos. Este estándar se utiliza para reemplazar el DES original, y ha sido analizado por múltiples partes y se usa ampliamente en todo el mundo. Los estándares avanzados de cifrado se han convertido en uno de los algoritmos más populares en el cifrado de clave simétrica.
2. La longitud del bloque de AES se fija a 128 bits, y la longitud de la llave puede ser 128, 192 o 256 bits; Mientras que la longitud de clave y bloque utilizada por Rijndael puede ser un múltiplo entero de 32 bits, con 128 bits como límite inferior y 256 bits como límite superior. Incluyendo AES-ECB, AES-CBC, AES-CTR, AES-OFB, AES-CFB.
3. Aquí solo aceptamos el método ECB comúnmente utilizado + PKCS7padding (el mismo valor que PKCS5Padding) para llenar el cifrado.
2. Aplicación
1.Uning AES en NodeJs
var crypto = request ('crypto'); var aesutil = module.exports = {};/*** AES Ci Encryption* @param Data Content para estar encriptado* @param Key debe ser una clave privada de 32 bits* @Returns {String}*/aesutil.encryction = function (datos, clave, clave, key, iv) {iv | iv | ""; var clearEncoding = 'utf8'; var cipherencoding = 'base64'; var cipherchunks = []; var cipher = crypto.createCipheriv ('AES-256-ECB', KEY, IV); cipher.setAutopadding (verdadero); cipherchunks.push (cifrado. cipherchunks.push (cifrado. Final (cifrado)); return cipherchunks.Join ('');}/*** AES Decryption* @param El contenido de datos para ser descifrado* @param Key debe ser una clave privada de 32 bits* @returns {String}*/aesutil.decryption = function (data, clave, 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 (verdadero); cipherchunks.push (decipher.update (datos, cipherencoding, clearEncoding)); cipherchunks.push (decipher.final (clearEncoding)); return cipherchunks.Join ('');}2. Uso de AES en JavaScript
Descargue la biblioteca de terceros crypto-js.js git dirección: https://github.com/brix/crypto-js
Introducir crypto-js.js bajo SRC, el código de cifrado es el siguiente:
var key = "12345678" // La clave debe ser: 8/16/32-bit var Message = "123456"; // CiNPT var encrypt = cryptojs.aes.enCrypt (mensaje, criptojs.enc.utf8.parse (clave), {modo: cryptojs.mode.ecb, padding: Cryptojs.pad.pkcs7}); console.log ("valor:"+cifrado); // descrypt var descrypt = cryptojs.aes.decrypt (encrypt, cryptojs.enc.utf8.parse (key), {mode: cryptojs.mode.ecb, padding: cryptoj.pad.pkcs7}); console.log ("Valor:"+Decrypt.ToString (cryptojs.enc.utf8));Autor original: Xi'an Wang Lei
Fuente original: http://vipstone.cnblogs.com/
Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.