AES对称加密逆向

18 篇文章 3 订阅
5 篇文章 1 订阅
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就是填充方式。
    将扣下的代码把三要素补上,接着采用缺啥补啥的方式将代码改写好就可以运行了。
训练网站:

https://www.maomaozu.com/#/build

如果喜欢的话可以关注博主,并且可以私聊博主进行技术交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值