首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python 爬虫进阶必备 | 某行业研究数据库的返回值加密分析

Python 爬虫进阶必备 | 某行业研究数据库的返回值加密分析

作者头像
咸鱼学Python
发布2021-11-17 12:58:43
发布2021-11-17 12:58:43
49400
代码可运行
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python
运行总次数:0
代码可运行

今日网站

aHR0cHM6Ly93d3cuaGFuZ2hhbmdjaGEuY29tL2FnZW5jeS10aW1pbmc=

这个站是返回值加密,写出来就是图个乐呵,毕竟做企业信息查询还是头部的两家给力,信息时效性更高。

加密定位

可以看到请求返回的值中data部分是加密的

这个时候切换到Initiator选项卡,可以看到这个请求的调用过程

“除了上面的方法之外,根据请求的类型也可以选择是否使用 xhr 断点调试的方式找到加密

通过分析堆栈可以在feachData的位置找到解密的代码

打上断点可以看到e的位置就是请求返回的内容

并且在下一行代码就是明文了

所以整个解密的逻辑就在c["a"].decrypt()

加密分析

重新刷新,在c["a"].decrypt()的位置重新单步进去

可以看到下面的逻辑

这个逻辑的代码就很清晰了

我们直接按照之前教的三要素就可以自己重写这个解密了

1、密钥

就是上面的三个常量拼接出来的字符串

2、填充模式是pkcs7

3、ECB 模式

知道这几个要素,我们在 Python 还原一下这个解密的过程

代码语言:javascript
代码运行次数:0
运行
复制
import base64
from Crypto.Cipher import AES
encryptData = "h+Eh4yR7ppy1uly1B/m..................WvqJ7Tr8qjavnh8e"
key = '3sd&d24h@$udD2s*'.encode()
cipher = AES.new(key, mode=AES.MODE_ECB)
data = str(cipher.decrypt(base64.b64decode(encryptData)),encoding='utf8')
print(data)

这样就可以解密了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 加密定位
  • 加密分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档