Python突破JS加密限制,进行逆向解密

Python(爬虫篇)--- 破解加密【一】JS加密破解 “加密”的过程,就是把“明文”变成“密文”的过程。反之:“解密”的过程,就是把“密文” 变为“明文”。网页数据加密的方式有很多种,比如:JS 加密、Base64 加密、CSS 加密等。 下面让我们一起来探讨一下这些加密吧! 阅读详情

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

开发环境:

  • Python 3.8

  • Pycharm

模块使用:

  • time >>> 时间模块,属于内置,无需安装

  • re >>> 用于生成随机数,属于内置,无需安装

  • requests >>> 主要用来发 送 HTTP 请求,属于内置,无需安装

  • execjs >>> 用来在python中运行js代码的库,第三方,需要安装

第三方模块安装:

win + R 输入cmd 输入安装命令 或 在pycharm中点击Terminal(终端) 输入安装命令

如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:

pip install -i https://pypi.doubanio.com/simple/ requests

逆向目标

目标:某 7 网游登录

主页:aHR0cHM6Ly93d3cuMzcuY29tLw==

接口:aHR0cHM6Ly9teS4zNy5jb20vYXBpL2xvZ2luLnBocA==

逆向参数:Query String Parameters:password: SlVEOThrcjgzNDNjaUYxOTQzNDM0eVM=

逆向过程

抓包分析

来到某 7 网游首页,随便输入一个账号密码,点击登陆,

抓包定位到登录接口为 aHR0cHM6Ly9teS4zNy5jb20vYXBpL2xvZ2luLnBocA== ,GET 请求:

分析一下 Query String Parameters 里的主要参数:

callback 是一个回调参数,这个参数的值不影响请求结果,它的格式为 jQuery + 20位数字 + _ + 13位时间戳,使用 Python 很容易构建:

import time
import random

timestamp = str(int(time.time() * 1000))
jsonp = ''
for _ in range(20):
    jsonp += str(random.randint(0, 9))
callback = 'jQuery' + jsonp + '_' + timestamp
print(callback)

login_account 是登录的账户名;

password 是加密后的密码;

_ 是13位时间戳。

参数逆向

需要我们逆向的参数就只有一个 password,

我们尝试直接全局搜索此关键字,会发现出来的结果非常多,不利于分析,

这里就有一个小技巧,加个等号,搜索 password=,这样就极大地缩短了查找范围,当然也可以搜索 password:,

也可以在关键字和符号之间加个空格,还可以搜索 var password 等,这些都是可以尝试的,要具体情况具体分析,一种没有结果就换另一种。

在本案例中,我们搜索 password=,在 sq.login2015.js 文件里可以看到语句 h.password = td(f),

疑似密码加密的地方,在此处埋下断点进行调试,可以看到返回的值确实是加密后的密码:


继续跟进 td 函数,可以看到是用到了一个自写的 RSA 加密,很简单明了,我们直接将其复制下来使用 Python 调用即可:

完整代码直接文末名片自取即可

参数 JS 加密关键代码

var ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
function __rsa(str) {
   
   
    var out, i, len;
    var c1, c2, c3;
    len = str.length;
    i = 0;
    out = "";
    while (i < len
python爬虫之JS逆向——爬虫基础 本文介绍了前端开发中的三大基础技术:HTML、CSS和JavaScript。其中,涵盖了HTML标签、CSS样式表、JavaScript基础语法、运算符、分支语句、循环语句、函数以及内置方法等内容,旨在帮助读者了解前端开发的基础知识,在将来服务于爬虫 阅读详情

相关推荐

Python反爬虫的四种常见方式-JS逆向方法论_python爬虫逆向(1)

首先把Chrome浏览器保存的该网站的cookie删除,按F12到Network窗口,把“preserve log”选中(Firefox是“Persist logs”),刷新网页,这样我们就可以看到历史的Network请求记录。其实它就是JS生成的。我们要写爬虫抓某个网页里面的数据,无非是打开网页,看看源代码,如果html里面有我们要的数据,那就简单了。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

m0_54853787的博客 1103

实战解密:如何用Python+JS逆向破解私募排排网数据加密(附完整代码)

本文详细介绍了如何利用Python和JS逆向技术破解私募排排网的数据加密机制,提供完整的代码实现和实战案例。通过分析金融数据加密特点、定位解密逻辑、处理动态密钥等关键步骤,帮助开发者掌握逆向工程技术,实现高效、合法的数据获取。文章还涵盖了反爬策略、性能优化和法律合规等重要考量。

weixin_29209825的博客 1169

Web接口AES加密逆向分析实战:从CryptoJS解密到Python数据还原

在Web开发与数据抓取领域,接口数据加密是常见的安全防护手段,其中AES对称加密算法因其安全性高、性能均衡成为主流选择。其原理是通过密钥和初始化向量,采用CBC等模式对数据进行块加密,确保传输过程中的机密性。掌握AES解密技术,对于开发者理解前后端数据交互安全、进行合规的数据集成与自动化处理具有重要价值。典型的应用场景包括加密货币数据平台(如Coinglass)的API响应解密、金融数据采集等。本文将以CryptoJS前端加密为例,详细拆解如何通过浏览器开发者工具进行逆向工程,定位密钥与算法参数,并最终使用

weixin_33744854的博客 444

前端视频加密逆向实战:从m3u8解密到Webpack模块分析

视频加密技术是保护数字内容版权的核心手段,其原理通常基于标准加密算法对视频流进行保护。在流媒体传输中,HLS协议广泛采用AES-128 CBC模式对TS切片进行加密,通过m3u8文件中的EXT-X-KEY标签传递密钥信息。这项技术的工程价值在于平衡内容保护与播放体验,广泛应用于在线教育、付费视频等需要版权保护的场景。本文聚焦于前端视频加密的逆向分析,通过动态调试定位Webpack打包后的加密模块,详细解析密钥生成逻辑与解密流程,并构建自动化下载解密流水线,为理解现代前端应用保护机制提供实践案例。

weixin_34238633的博客 344

JS逆向实战:解密有道翻译前端加密与签名机制

在Web开发与数据采集领域,前端加密是保障API安全、防止恶意爬虫的常见技术手段。其核心原理在于,网站通过JavaScript在浏览器端对请求参数进行动态加密或签名,使得简单的HTTP请求复制失效,从而验证请求的合法性。这种签名验证技术通常结合时间戳、随机盐值与固定密钥,利用哈希算法(如MD5)生成唯一签名,有效抵御重放攻击。从工程实践角度看,理解并复现前端加密逻辑,对于构建稳定的自动化工具、进行合法合规的数据交互至关重要。本文以典型的翻译接口为例,深入剖析了包括MD5签名生成、参数逆向分析在内的完整JS逆

aome1470的博客 470

Python爬虫实战:逆向解析央视频加密流媒体与HLS协议

流媒体技术是现代互联网视频传输的核心,其中HLS(HTTP Live Streaming)协议因其自适应码率和良好的兼容性被广泛应用。其基本原理是将视频流切片为连续的TS文件,并通过M3U8索引文件进行组织。为了保护版权内容,平台常采用AES-128等加密技术对TS片段进行保护,这为数据采集带来了技术挑战。通过Python爬虫结合前端逆向工程,可以解析加密逻辑、获取解密密钥,并最终实现流媒体内容的自动化获取。这一技术方案在合规的技术研究、媒体监控与数据分析等场景中具有实用价值。本文以央视频平台为例,详细拆解

weixin_30530339的博客 348

Web接口加密逆向实战:AES+RSA+MD5混合加密流程解析与Python复现

在现代Web应用开发中,数据传输安全是核心议题。对称加密算法AES因其高效性,常被用于加密业务数据;而非对称加密算法RSA则用于安全交换对称密钥,构成混合加密体系。哈希函数MD5则用于生成数据签名,确保传输完整性。这种组合技术方案在金融、电商及数据敏感型平台的API接口中广泛应用,能有效防止数据在传输过程中被窃取或篡改。本文以某观鸟记录中心的数据查询接口为例,深入剖析其前端JavaScript中AES、RSA与MD5的协同加密逻辑,并提供完整的Python代码实现,演示如何通过逆向分析,复现从明文参数组装、

weixin_34280237的博客 331

爬虫中的 JS 逆向入门:理解网页 JS 加密的常见方式

摘要:本文系统介绍爬虫场景下JS逆向技术,重点分析网站反爬机制中的前端加密手段。首先概述JS加密的核心作用(参数隐藏、成本增加、环境绑定)及典型应用场景(登录密码、接口签名、数据解密)。接着分类讲解标准加密算法(哈希/对称/非对称)和自定义算法的技术特征与识别方法,并给出Python还原示例。针对实际逆向流程,详细说明定位加密参数、分析加密逻辑的方法,通过MD5加密登录案例演示完整逆向过程。最后总结代码混淆、动态加载等挑战的应对策略,为爬虫开发者提供系统性的JS逆向入门指导。

2503_91057718的博客 1062

Python 爬虫实战:反爬突破之 JS 混淆代码解密(工具与思路)

随着网络爬虫技术的普及,网站反爬机制也日趋复杂,其中 JavaScript 代码混淆已成为主流反爬手段之一。许多网站通过对关键逻辑代码进行混淆(如变量名替换、控制流平坦化、字符串加密等),增加爬虫开发者分析参数生成逻辑的难度。本文将从实战角度出发,系统讲解 JS 混淆代码的解密思路与常用工具,通过具体案例演示如何定位关键代码、还原逻辑并提取核心算法,帮助开发者突破反爬限制,为爬虫开发提供关键技术支持。本文聚焦于爬虫开发中的 JS 混淆代码解密问题,首先介绍常见的 JS 混淆技术类型及其识别特征;

2503_91057718的博客 2375

3GPP LTE/NR信道模型

CDL(Clustered Delay Line):簇延迟线模型,包括CDL-A、CDL-B、CDL-C三个用于NLOS的信道模型,以及CDL-D、CDL-E两个用于LOS的信道模型。

LinkEverything的博客 1万+

Matlab Arduino 硬件支持包安装 MATLAB_Support_Package_for_Arduino_Hardware

Matlab Arduino硬件支持包离线安装

weixin_43283734的博客 2840

基于STM32 HAL库的L298N四驱电机PWM调速与方向控制实战

本文详细介绍了基于STM32 HAL库驱动L298N电机控制板实现四驱小车PWM调速与方向控制的实战方法。涵盖硬件连接、GPIO与定时器配置、PWM生成、方向控制逻辑及电源管理等核心内容,并提供代码优化与常见问题解决方案,帮助开发者快速实现高效稳定的电机控制。

jump7的博客 222

Cherry Studio部署MCP服务报错全记录:从零解决‘Connection closed‘问题

本文详细记录了在Cherry Studio中部署MCP服务时遇到‘Connection closed’报错的完整排查与解决过程。文章从环境依赖(UV、Bun)的安装验证、绝对路径配置、网络镜像源设置,到服务端手动调试与Cherry Studio配置检查,提供了一套系统性的解决方案,帮助开发者彻底解决此类连接问题。

g9h0i1的博客 761

阿里云天池大数据长期赛:金融风控-贷款违约预测(含代码)

本次比赛让自己在大数据的处理流程上有了更明确的认知,从数据清洗、特征工程、数据建模,每一个过程都能学到很多经验和知识,值得去历练。

weixin_46685991的博客 1万+

汇川H5U搭配步进伺服电机使用CANopen通讯控制电机案例

摘要:本文介绍了基于汇川H5U PLC和STM4260B-CANopen-M步进伺服电机的控制系统搭建流程。主要内容包括:硬件准备(PLC、伺服电机、24V电源)、电机参数默认设置(地址1号、1M波特率)、使用AutoShop软件编写程序(配置CANopen参数、导入电机描述文件、设置PDO参数)以及功能块编程(使能控制、速度控制、绝对位置控制等)。通过查阅通讯手册完成各功能块参数配置,最终在主程序中调用功能块实现控制系统开发。该方案适用于需要精确运动控制的工业自动化场景。

m0_46512607的博客 1594

OpenClaw 在 Docker 容器中的部署实战——零配置启动

本文介绍了OpenClaw在Docker容器中的快速部署方法,对比了本地部署与容器化部署的优势。通过官方镜像和Docker Compose两种方式,5分钟即可完成部署,并详细讲解了配置管理方案(挂载配置文件和环境变量)。文章还提供了飞书集成配置方法,以及生产环境下的日志管理、资源限制、健康检查等优化建议。最后包含常见问题排查指南,帮助开发者快速实现OpenClaw的容器化部署。

刘一说的IT专栏 903

使用再生龙备份还原liunx系统(精确每一步)

再生龙镜像可自行到官网下载(ISO/ZIP格式均可),然后使用tuxboot烧录工具制作启动盘,另外准备一个U盘用来存储备份的镜像文件,即再生龙盘和存储盘是两个分开的。当然也可以用分区工具把同一个硬盘分区来使用,比较方便,先学会基本的吧,只是告诉有个捷径,省个U盘。

米可的博客! 8361

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 【python】批量采集次元岛cos美图,只是为了学习~
下一篇: Python时间模块:time和datetime的区别与用法
魔王不会哭
博客等级 码龄5年 6002粉丝 394原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值