1. مقدمة
1. تشفير AES ، في التشفير ، يُعرف أيضًا باسم طريقة تشفير Rijndael ، وهو معيار تشفير الكتلة الذي اعتمدته الحكومة الفيدرالية الأمريكية. يتم استخدام هذا المعيار لاستبدال DES الأصلي ، وقد تم تحليله بواسطة أطراف متعددة ويستخدم على نطاق واسع في جميع أنحاء العالم. أصبحت معايير التشفير المتقدمة واحدة من أكثر الخوارزميات شعبية في تشفير المفتاح المتماثل.
2. يتم تثبيت طول كتلة AEs إلى 128 بت ، ويمكن أن يكون طول المفتاح 128 أو 192 أو 256 بت ؛ في حين أن المفتاح والطول الذي يستخدمه Rijndael يمكن أن يكون مضاعفًا صحيحًا يبلغ 32 بت ، مع 128 بت كحد أدنى و 256 بت كحد الأعلى. بما في ذلك AES-ECB و AES-CBC و AES-CTR و AES-OFB و AES-CFB.
3. هنا نقبل فقط طريقة ECB شائعة الاستخدام + PKCS7Padding (نفس قيمة PKCS5Padding) لملء التشفير.
2. التطبيق
1. استخدام AEs في nodejs
var crypto = require ('crypto') ؛ var aesutil = module.exports = {} ؛/*** AES Encryption* @param يجب أن يكون محتوى البيانات مشفرًا* param مفتاح خاص 32 بت = IV = IV) "" ؛ var clearencoding = 'utf8' ؛ var cipherencoding = 'base64' ؛ var cipherchunks = [] ؛ var cipher = crypto.createCipheriv ('AES-256-ECB' ، Key ، IV) ؛ cipher.setautopadding (صواب) ؛ cipherchunks.push (cipher.update (البيانات ، clearencoding ، cipherencoding)) ؛ cipherchunks.push (cipher.final (cipherencoding)) ؛ إرجاع cipherchunks.join ('') ؛}/*** aes decryption* param محتوى البيانات ليتم فك تشفيره* @param يجب أن يكون مفتاح خاص 32 بت* returns {string}*/aesutil.decryption = function (البيانات ، المفتاح ، 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 (صواب) ؛ cipherchunks.push (decipher.update (البيانات ، cipherencoding ، clearencoding)) ؛ cipherchunks.push (decipher.final (clearencoding)) ؛ إرجاع cipherchunks.join ('') ؛}2. استخدام AEs في JavaScript
قم بتنزيل عنوان مكتبة الطرف الثالث Crypto-Js.js Git العنوان: https://github.com/brix/crypto-js
تقديم Crypto-Js.js تحت SRC ، رمز التشفير هو كما يلي:
var key = "12345678" // يجب أن يكون المفتاح: 8/16/32-bit message = "123456" ؛ // encrypt var encrypt = cryptojs.aes.encrypt (message ، cryptojs.enc.utf8.parse (key) ، {mode: cryptojs.mode.ecb ، cryptojs.pad.pkcs7}) ؛ console.log ("القيمة:"+encrypt) ؛ // decrypt var decrypt = cryptojs.aes.decrypt (incrypt ، cryptojs.enc.utf8.parse (key) ، {mode: cryptojs.mode.ecb ، padding: console.log ("القيمة:"+decrypt.toString (cryptojs.enc.utf8)) ؛المؤلف الأصلي: Xi'an Wang Lei
المصدر الأصلي: http://vipstone.cnblogs.com/
ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون مفيدًا لتعلم الجميع.