AES加密
定义:AES加密又称对称加密,通过密钥将信息加密后,把密文传给另一方,另一方通过这个相同密钥将密文解密,转换成可以理解的明文。
AES加密三要素
- 填充
 AES分组加密的特性,AES机密是把铭文拆分成一个个独立的铭文快,并且明文快128bit的(假如一个明文196bit,按照每个组128bit拆分,第一个只有64bit,不足128bit这时候就得用填充 )
 填充方法有:
 Nopadding
 PKCS7Padding
 Zeropadding:0填充
 AnsiX923
 lso10126
 lso97971
- 模式
 每个模式的具体就不再这里阐述了。 
- 密钥
 以上就是AES的三要素了。找到这三个东西就可以正常解密。
- AES加密流程
 把明文按照128bit拆分成若干个明文块
 按照选择的填充方式来填充最后一个明文块
 每个明文块利用AES加密器和密钥,加密成密文块
 拼接所有的密文块,成为最终的密文结果。
 先看看JavaScript怎样写AES加密的
var CryptoJS = require('crypto-js')
function get_aes_decrypt(pwd,key){
    var pwd = JSON.stringify(pwd);
    var _key = CryptoJS .enc.utf8.parse(key);
    var encryptedData = CryptoJS.AES.encrypt(pwd,_key,data:{
        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    });
    return encryptedData.ciphertext.toString();
}
var data = get_aes_decrypt()
console.log(data)
下面通过案例来解释
案例一:
全国建筑市场监管平台:http://jzsc.mohurd.gov.cn/data/company
此站点通过Cryptojs_AES_CBC加密,响应加密返回的hexstr
 AES加密可以通过关键字:decrypt、CryptoJS、encrypt等进行全局查找。
 这个案例是对是数据进行加密的
 
- 进入js文件
 进入之后,先把代码扣除出来。你仔细的话可以发现这个函数跟我上述给的JavaScript代码十分相似。 这里不难发现n就是所谓经过处理的明文,f就是所说的密钥,data函数的iv就是模值,mode就是采用的加密模式,padding就是填充方式。 这里不难发现n就是所谓经过处理的明文,f就是所说的密钥,data函数的iv就是模值,mode就是采用的加密模式,padding就是填充方式。
 将扣下的代码把三要素补上,接着采用缺啥补啥的方式将代码改写好就可以运行了。
训练网站:
https://www.maomaozu.com/#/build
如果喜欢的话可以关注博主,并且可以私聊博主进行技术交流










