⑴ 盘点 90% Python 爬虫中的常见加密算法,建议收藏!!
在数据抓取过程中,我们经常会遇到加密参数,如“token”、“sign”等。今天,我们将深入探索这些主流加密算法的特征和加密方式,帮助大家更好地理解并破解加密参数。首先,让我们简要了解加密与解密的概念。加密和解密都是在密钥控制下进行的操作,密钥分为加密密钥和解密密钥。加密算法分为对称加密、非对称加密和散列算法。
接着,我们来看看Base64伪加密。Base64并不是真正的加密算法,而是一种编码方法。它使用64个字符编码数据,常用于HTTP环境下的标识信息。我们使用Python实现Base64编码和解码,可以轻松进行操作。
接下来,我们介绍MD5加密。MD5是一种广泛使用的线性散列算法,加密后生成固定长度的数据,由字母和数字组成,大小写统一。MD5加密数据是不可逆的,因此破解较为困难,但可以通过暴力破解尝试还原。在Python中,我们可以轻松实现MD5加密功能,同时增加盐值或双重加密以提升安全性。
对称加密算法如DES和AES也是数据抓取中常见的加密方法。DES加密是数据加密标准,常用于对称加密,但其密钥长度限制在56位,相对容易被破解。相比之下,AES加密更为现代和安全,支持128、192、256位密钥长度。AES加密涉及密钥、填充和工作模式,如CBC、ECB、CTR、CFB和OFB。在Python中,我们可以实现AES加密过程。
通过深入学习这些加密算法的特征和加密方式,我们能更好地应对数据抓取过程中的加密挑战。记住,理解加密原理和使用正确的解密方法对于安全地处理加密数据至关重要。希望这篇指南能帮助你更高效地进行数据抓取。
⑵ Python网络爬虫之数美滑块的加密及轨迹——动态js参数分析
作者:Python进阶者
来源:Python爬虫与数据挖掘
前言
今天,我将与大家分享关于数美滑块的加密与轨迹分析,这是一个基础级别的内容,包括使用他们的教程和实践方法。滑块预览图如下所示。
滑块预览图
在开始之前,我们先查看了接口 /ca/v1/conf,从中获取了域名和js地址,以及包含的版本号。然后,我们深入研究了提交滑块时的参数,发现除了sdkver、organization、rid、act.os、rversion、ostype、callback等固定参数外,还有11个参数名称和值会随着版本更新而变化。这些参数的位置和获取方法如下图所示。
通过全局搜索参数名并定位,我们可以找到大约8个参数的有效位置。分析代码后发现,有一些参数通过函数_0x27c7fb(以16进制形式传入参数)解密得到DES密钥,而其他参数直接使用明文DES密钥。因此,我们需要找到并获取这个解密函数。
整个JS文件可以分为两部分:第一部分定义了一个解密函数,该函数接收一个整数、减去一个整数,然后使用大数组的下标返回字符串。第二部分则是一个用于返回大数组和偏移处理的匿名函数。现在,我们已经获取了解密函数的JS代码和函数名。
接下来,我们将使用正则表达式匹配出所有参数。正则代码如下所示,可以匹配出所有图中可见的参数,然后根据滑块的参数信息进行保存。这将帮助我们获取到11个动态参数的值。
获取参数值的方法包括循环处理2位数的明文参数,以及对16进制参数和明文DES密钥的判断。通过调用之前定义的JS函数和解密函数,我们可以将16进制参数转换为整数,并使用解密函数解密得到密钥。
总结而言,这个动态正则思路能够适应数美滑块版本号147至151之间的变化。对于更早版本的混淆结构,我们可能需要寻找不同的方法。对于常更新的JS代码,确实是一个挑战。希望这份分析能够帮助到大家。