1. Introduction
1. Le cryptage AES, en cryptographie, est également connu sous le nom de méthode de cryptage Rijndael, qui est une norme de cryptage en bloc adoptée par le gouvernement fédéral américain. Cette norme est utilisée pour remplacer le DES d'origine et a été analysée par plusieurs parties et est largement utilisée dans le monde. Les normes de chiffrement avancées sont devenues l'un des algorithmes les plus populaires dans le cryptage des clés symétriques.
2. La longueur du bloc des AES est fixée à 128 bits, et la longueur de clé peut être de 128, 192 ou 256 bits; tandis que la clé et la longueur de bloc utilisée par Rijndael peuvent être un multiple entier de 32 bits, avec 128 bits comme limite inférieure et 256 bits comme limite supérieure. Y compris AES-ECB, AES-CBC, AES-CTR, AES-OBS, AES-CFB.
3. Ici, nous n'acceptons que la méthode ECB couramment utilisée + PKCS7PADDING (la même valeur que PKCS5PADDING) pour remplir le cryptage.
2. Application
1. Utilisation des AES dans les nodejs
var crypto = require ('crypto'); var aesUtil = module.exports = {}; / ** * aes Encryption * @param contenu de données à crypter * @param clé doit être une clé privée 32 bits * @returns {string} * / aesutil.encryption = function (data, 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 Decryption * @param contenu de données à décrypter * @param clé doit être une clé privée 32 bits * @returns {string} * / aesutil.decryption = function (data, key, iv) {if (! data) {return ""; } iv = iv || ""; var Clearencoding = 'utf8'; var cipherencoding = 'Base64'; var cipherchunks = []; var Deciffher = crypto.createedecipheriv ('aes-256-ecb', key, iv); Decipher.setAutopadding (true); cipherchunks.push (Depiry.update (données, cipherencoding, clierenccoding)); cipherchunks.push (Decipher.Final (ClearenCcoding)); retourner cipherchunks.join ('');}2.Utilisation des AES en javascript
Téléchargez la bibliothèque tierce Crypto-js.js Adresse git: https://github.com/brix/crypto-js
Introduire Crypto-js.js sous SRC, le code de cryptage est le suivant:
var key = "12345678" // La clé doit être: 8/16/32 bits var message = "123456"; // Encrypt var Encrypt = cryptojs.aes.encrypt (message, cryptojs.enc.utf8.parse (key), {mode: cryptojs.mode.ecb, padding: Console.log ("valeur:" + crypt); // decrypt var decrypt = cryptojs.aes.decrypt (encrypt, cryptojs.en.utf8.parse (key), {mode: crypojs.mode.ecb: cryptojs.pad.pkcs7}); console.log ("Value:" + decrypt.tostring (cryptojs.end.utf8));Auteur original: xi'an wang lei
Source originale: http://vipstone.cnblogs.com/
Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.