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 = ต้องการ ('crypto'); var aesutil = module.exports = {};/*** การเข้ารหัส aes* @param เนื้อหาข้อมูลที่จะเข้ารหัส* @param คีย์ต้องเป็นคีย์ส่วนตัว 32 บิต* @returns - var clearEncoding = 'utf8'; var cipherencoding = 'base64'; var cipherchunks = []; var cipher = crypto.createCipheriv ('AES-256-ECB', key, iv); cipher.setautopadding (จริง); cipherchunks.push (cipher.update (ข้อมูล, การเข้ารหัส, การเข้ารหัส, การเข้ารหัส)); cipherchunks.push (cipher.final (การเข้ารหัส)); ส่งคืน cipherchunks.join (');}/*** การถอดรหัส aes* @param เนื้อหาข้อมูลที่จะถอดรหัส* @param คีย์ต้องเป็นคีย์ส่วนตัว 32 บิต* @returns {String}*/aesutil.decryption = ฟังก์ชัน (ข้อมูล, iv) } iv = iv || - var clearEncoding = 'utf8'; var cipherencoding = 'base64'; var cipherchunks = []; decipher var = crypto.createdecipheriv ('AES-256-ECB', key, iv); decipher.setautopadding (จริง); cipherchunks.push (decipher.update (ข้อมูล, การเข้ารหัสการเข้ารหัส, การเข้ารหัส)); cipherchunks.push (decipher.final (clearencoding)); return 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 บิต var message = "123456"; // เข้ารหัส var encrypt = cryptojs.aes.encrypt (ข้อความ cryptojs.enc.utf8.parse (key), {โหมด: cryptojs.mode. cryptojs.pad.pkcs7}); console.log ("ค่า:"+เข้ารหัส); // decrypt var decrypt = cryptojs.aes.decrypt (เข้ารหัส, cryptojs.enc.utf8.parse (คีย์), {โหมด: cryptojs.mode.ecb console.log ("value:"+decrypt.toString (cryptojs.enc.Utf8));ผู้แต่งต้นฉบับ: Xi'an Wang Lei
แหล่งที่มาดั้งเดิม: http://vipstone.cnblogs.com/
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับการเรียนรู้ของทุกคน