百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

python爬虫入门教程!某人点集——sign参数加密

off999 2024-10-18 08:02 16 浏览 0 评论

Hello,我长沙吴彦祖又回来了~~

本次课程中,我们将会学习如何完成网站加密参数的逆向分析,本次的网站案例为http://www.hh1024.com/

背景

前面我们讲过了,网站为什么会设置加密的参数,简单来讲一是加快网站框架的加载速度,二是屏蔽一些低端的爬虫程序,对于无法解密参数构成的程序是无法发起正常的网络请求的。

下面我们就正式开始对该网站的接口进行分析,准备好了嘛?

接口分析

在分析接口信息之前,首先通过浏览器自带的开发者工具,捕获多个不同的请求。

根据抓包请求显示的内容可以发现,想要获取到榜单数据,则必须要模拟发送请求。

想要模拟发送请求,则必须要先理解每一个参数的含义,其中每次请求会发生变化的参数为sign和timestamp。

经过观察分析之后可以发现timestamp为时间戳,因此我们只需要得到参数sign的加密方式,就能够模拟发送请求。

参数加密分析

在知道需要获取的加密参数之后,通过搜索请求参数的方式找到js加密的位置。

具体的搜索过程如下图所示:

依次多所有的请求参数进行搜索之后,可以发现在搜索参数tenant时,搜索返回的结果只有一个。

进入唯一的js文件之后,继续通过ctrl+f搜索tenant可以看到如下的内容:

可以清楚地看到sign参数的构成成分,下面我们一起简单地分析一下,加密之前的sign由什么内容组成。

首先是参数param,也就是我们这次请求压迫提交的参数,一个键值对格式的数据,然后再拼接了一个时间戳和一个固定的字符H, 得到原始数据之后调用了sha256加密的方式对数据进行了处理。

python模拟加密过程

现在我们已经知道了sign参数的加密方式以及加密的原始内容,接下来我们通过python构造出同样的内容以及同样的加密算法,来检查一下能否完成模拟加密的过程。


import hashlib


H = "kbn%&)@<?FGkfs8sdf4Vg1*+;`kf5ndl#34;
param = '{"no":"dy0019","data":{"rankType":5}}'
timestamp = '1613885007548'
# 需要加密参数
encrypt_data = "param=" + param + "×tamp=" + timestamp + "&tenant=1&salt=" + H

hs = hashlib.sha256()
hs.update(encrypt_data.encode('utf-8'))
sign = hs.hexdigest()
print(sign)

根据代码运行的结果,加密后结果与需要验证的sign一致,加密完成。

看到这里,我们的第一篇js网站逆向的内容就结束了,主要给大家分享了,遇到请求参数加密之后,如何冷静地对参数进行分析,以及如何查找参数的加密过程。

想要深入学习可以继续关注,接下来还会更新一系列具体的网站反爬虫的解决方案。

感谢关注~

相关推荐

python入门到脱坑经典案例—清空列表

在Python中,清空列表是一个基础但重要的操作。clear()方法是最直接的方式,但还有其他方法也可以实现相同效果。以下是详细说明:1.使用clear()方法(Python3.3+推荐)...

python中元组,列表,字典,集合删除项目方式的归纳

九三,君子终日乾乾,夕惕若,厉无咎。在使用python过程中会经常遇到这四种集合数据类型,今天就对这四种集合数据类型中删除项目的操作做个总结性的归纳。列表(List)是一种有序和可更改的集合。允许重复...

Linux 下海量文件删除方法效率对比,最慢的竟然是 rm

Linux下海量文件删除方法效率对比,本次参赛选手一共6位,分别是:rm、find、findwithdelete、rsync、Python、Perl.首先建立50万个文件$testfor...

数据结构与算法——链式存储(链表)的插入及删除,

持续分享嵌入式技术,操作系统,算法,c语言/python等,欢迎小友关注支持上篇文章我们讲述了链表的基本概念及一些查找遍历的方法,本篇我们主要将一下链表的插入删除操作,以及采用堆栈方式如何创建链表。链...

Python自动化:openpyxl写入数据,插入删除行列等基础操作

importopenpyxlwb=openpyxl.load_workbook("example1.xlsx")sh=wb['Sheet1']写入数据#...

在Linux下软件的安装与卸载(linux里的程序的安装与卸载命令)

通过apt安装/协助软件apt是AdvancedPackagingTool,是Linux下的一款安装包管理工具可以在终端中方便的安装/卸载/更新软件包命令使用格式:安装软件:sudoapt...

Python 批量卸载关联包 pip-autoremove

pip工具在安装扩展包的时候会自动安装依赖的关联包,但是卸载时只删除单个包,无法卸载关联的包。pip-autoremove就是为了解决卸载关联包的问题。安装方法通过下面的命令安装:pipinsta...

用Python在Word文档中插入和删除文本框

在当今自动化办公需求日益增长的背景下,通过编程手段动态管理Word文档中的文本框元素已成为提升工作效率的关键技术路径。文本框作为文档排版中灵活的内容容器,既能承载多模态信息(如文字、图像),又可实现独...

Python 从列表中删除值的多种实用方法详解

#Python从列表中删除值的多种实用方法详解在Python编程中,列表(List)是一种常用的数据结构,具有动态可变的特性。当我们需要从列表中删除元素时,根据不同的场景(如按值删除、按索引删除、...

Python 中的前缀删除操作全指南(python删除前导0)

1.字符串前缀删除1.1使用内置方法Python提供了几种内置方法来处理字符串前缀的删除:#1.使用removeprefix()方法(Python3.9+)text="...

每天学点Python知识:如何删除空白

在Python中,删除空白可以分为几种不同的情况,常见的是针对字符串或列表中空白字符的处理。一、删除字符串中的空白1.删除字符串两端的空白(空格、\t、\n等)使用.strip()方法:s...

Linux系统自带Python2&amp;yum的卸载及重装

写在前面事情的起因是我昨天在测试Linux安装Python3的shell脚本时,需要卸载Python3重新安装一遍。但是通过如下命令卸载python3时,少写了个3,不小心将系统自带的python2也...

如何使用Python将多个excel文件数据快速汇总?

在数据分析和处理的过程中,Excel文件是我们经常会遇到的数据格式之一。本文将通过一个具体的示例,展示如何使用Python和Pandas库来读取、合并和处理多个Excel文件的数据,并最终生成一个包含...

【第三弹】用Python实现Excel的vlookup功能

今天继续用pandas实现Excel的vlookup功能,假设我们的2个表长成这样:我们希望把Sheet2的部门匹在Sheet1的最后一列。话不多说,先上代码:importpandasaspd...

python中pandas读取excel单列及连续多列数据

案例:想获取test.xls中C列、H列以后(当H列后列数未知时)的所有数据。importpandasaspdfile_name=r'D:\test.xls'#表格绝对...

取消回复欢迎 发表评论: