You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python解密GET请求加密响应Payload及RSA私钥获取问题咨询

问题描述

我正尝试使用Python requests库抓取南非铂金品类的「出口潜力」数据,需要获取每个对应国家的相关字段。
我原本认为可以直接从GET请求的响应中提取数据,但通过浏览器调试工具的网络面板查看后,发现对应数据接口的GET请求返回的响应是加密的,加密内容示例如下:

6iCAiWaW1XZJbKsS5qQ/xi/BAjjuW+be41Kv9tsJK8QuAo076JqB45lqPYR76rLsJjmRXBnrxExBXs5tJSfCeYpAPOrWE1raR+UyDJtujAgezfZV22PH16UI+RhwvBA26hcd8FvxLCCA1/DPDNNT6xKGVXi0Ykm7ih2mFcR3N5mq...

我推测该内容使用RSA算法加密,理论上可通过私钥解密数据,但我不清楚私钥的获取途径,也无法完全确认加密算法,这类加密响应我在多个其他站点也遇到过,并非仅针对当前ITC站点。

现有两个问题需要咨询:

  1. 如何使用Python解密这类加密数据?
  2. 解密所需的RSA私钥可从哪里获取?

解答

1. Python解密RSA加密数据的方法

如果确认加密方式为RSA-OAEP、哈希算法为SHA-1,可以使用pycryptodome库完成解密,操作步骤如下:

  • 先安装依赖库:
    pip install pycryptodome
  • 解密代码示例:
import base64
from Crypto.Cipher import PKCS1_OAEP
from Crypto.PublicKey import RSA
from Crypto.Hash import SHA1

# 加载RSA私钥
private_key = RSA.import_key(open("private.pem").read())
# 初始化解密器
cipher = PKCS1_OAEP.new(private_key, hashAlgo=SHA1)
# 对接口返回的base64格式密文先做base64解码
encrypted_data = base64.b64decode("替换为你的加密响应内容")
# 解密得到明文
decrypted_data = cipher.decrypt(encrypted_data)
# 转成字符串即可得到原始数据,一般为JSON格式
print(decrypted_data.decode("utf-8"))

2. RSA私钥的获取方式

RSA私钥属于服务端保密信息,正常不会公开暴露,你可以从以下方向尝试获取:

  • 前端JS源码检索:既然浏览器端可以正常渲染数据,说明前端代码里包含解密逻辑和私钥。打开浏览器调试工具的「Sources」面板,搜索RSA、decrypt、private key、BEGIN RSA PRIVATE KEY这类关键词,一般能找到硬编码在JS文件里的私钥内容,部分站点会对JS做混淆,需要先解混淆再提取。
  • 更简单的替代方案:不需要破解加密接口,直接用Playwright、Selenium这类无头浏览器工具模拟正常访问,直接从渲染完成的页面DOM中提取你需要的字段,完全跳过解密步骤。

内容的提问来源于stack exchange,提问作者Zanzibar88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 12:33:01