1. 소개
1. 암호화에서 AES 암호화는 Rijndael 암호화 방법으로도 알려져 있으며, 이는 미국 연방 정부가 채택한 블록 암호화 표준입니다. 이 표준은 원래 DES를 대체하는 데 사용되며 여러 당사자가 분석했으며 전 세계적으로 널리 사용됩니다. 고급 암호화 표준은 대칭 키 암호화에서 가장 인기있는 알고리즘 중 하나가되었습니다.
2. AE의 블록 길이는 128 비트로 고정되고 키 길이는 128, 192 또는 256 비트 일 수 있습니다. Rijndael이 사용하는 키 및 블록 길이는 32 비트의 정수 다중 일 수 있으며, 하한은 128 비트, 상한으로 256 비트 일 수 있습니다. AES-ECB, AES-CBC, AES-CTR, AES-OFB, AES-CFB를 포함합니다.
3. 여기서 우리는 일반적으로 사용되는 ECB 방법 + pkcs7padding (pkcs5padding과 동일한 값) 만 암호화를 채우기 만 허용합니다.
2. 응용 프로그램
1. nodejs에서 AES를 사용합니다
var crypto = require ( 'crypto'); varaesutil = module.exports = {};/*** aes 암호화* @param 데이터 암호화* @param 키* @param 키* @returns {String}*/aesutil.encryption = function (data, iv) {iv = iv | | "";; var clearencoding = 'utf8'; var cipherencoding = 'base64'; var cipherchunks = []; var cipher = crypto.createcipheriv ( 'AES-256-ECB', 키, iv); cipher.setAutopadding (true); cipherchunks.push (cipher.update (data, clearencoding, cipherencoding)); cipherchunks.push (cipher.final (cipherencoding)); return cipherchunks.join ( '');}/*** aes 암호 해독* @param 데이터 컨텐츠를 해독 할* @param 키* @param 키는 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 (데이터, 암호화, clearencoding)); cipherchunks.push (decipher.final (clearencoding)); cipherchunks.join ( '');} return return2. JavaScript에서 AES를 사용합니다
타사 라이브러리 Crypto-Js.js Git 주소 : https://github.com/brix/crypto-js를 다운로드하십시오
SRC에서 Crypto-js.js를 소개하는 암호화 코드는 다음과 같습니다.
var key = "12345678"// 키는 다음과 같아야합니다. 8/16/32 비트 var var message = "123456"; // var encrypt = cryptojs.aes.encrypt (메시지, cryptojs.enc.utf8.parse (key), {mode : cryptojs.mode.ecb, padding : cryptojs.pad.pkcs7}); console.log ( "value :"+encrypt); // decrypt var decrypt = cryptojs.aes.decrypt (encrypt, cryptojs.enc.utf8.parse (key), {mode : cryptojs.mode.ecb : padding : pad.pks7}); console.log ( "value :"+decrypt.tostring (cryptojs.enc.utf8));원래 저자 : Xi'an Wang Lei
원본 출처 : http://vipstone.cnblogs.com/
위의 내용은이 기사에 관한 모든 것입니다. 모든 사람의 학습에 도움이되기를 바랍니다.