Python 爬虫 AES DES加密反爬
当你遇到需要处理 AES 或 DES 加密的反爬虫机制时,Python 可以通过使用相应的库来解决这类问题。首先,我们需要理解 AES 和 DES 加密是什么:
- AES (Advanced Encryption Standard):一种广泛使用的对称加密算法,它使用相同的密钥进行加密和解密。
- DES (Data Encryption Standard):一种较旧的对称加密算法,现在通常被认为不够安全,已经被 AES 所取代。
解决步骤
-
安装必要的库: 为了使用 AES 或 DES 加密/解密,你需要安装
pycryptodome库。这个库提供了一个加密套件,包括 AES 和 DES 的实现。安装命令:
pip install pycryptodome -
分析加密逻辑: 在爬虫中处理加密通常涉及到对请求参数的加密或对响应数据的解密。首先需要了解目标网站使用的加密算法的具体细节,如密钥、加密模式、初始化向量(IV)等。
-
实现加密/解密: 根据分析得出的加密逻辑,使用
pycryptodome库中的 AES 或 DES 方法来实现相应的加密或解密。
示例代码
以下是使用 Python 进行 AES 和 DES 加密/解密的简单示例:
AES 加密/解密
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad# AES 加密
def aes_encrypt(data, key):cipher = AES.new(key, AES.MODE_CBC)ct_bytes = cipher.encrypt(pad(data.encode(), AES.block_size))iv = cipher.ivciphertext = ct_bytesreturn iv, ciphertext# AES 解密
def aes_decrypt(iv, ciphertext, key):cipher = AES.new(key, AES.MODE_CBC, iv)pt = unpad(cipher.decrypt(ciphertext), AES.block_size)return pt.decode()# 示例
key = b'YourKeyHere16Byte' # AES 密钥应为 16, 24 或 32 字节
data = 'Hello, World!'
iv, ciphertext = aes_encrypt(data, key)
plaintext = aes_decrypt(iv, ciphertext, key)
print("Plaintext:", plaintext)
DES 加密/解密
from Crypto.Cipher import DES
from Crypto.Util.Padding import pad, unpad# DES 加密
def des_encrypt(data, key):cipher = DES.new(key, DES.MODE_CBC)ct_bytes = cipher.encrypt(pad(data.encode(), DES.block_size))iv = cipher.ivciphertext = ct_bytesreturn iv, ciphertext# DES 解密
def des_decrypt(iv, ciphertext, key):cipher = DES.new(key, DES.MODE_CBC, iv)pt = unpad(cipher.decrypt(ciphertext), DES.block_size)return pt.decode()# 示例
key = b'8ByteKey' # DES 密钥应为 8 字节
data = 'Hello, World!'
iv, ciphertext = des_encrypt(data, key)
plaintext = des_decrypt(iv, ciphertext, key)
print("Plaintext:", plaintext)
注意事项
- 在处理加密时,务必遵守相关法律法规。
- 部分网站的加密机制可能较为复杂,需要深入分析其 JavaScript 代码或其他客户端逻辑。
- 确保你的密钥和加密设置与目标网站一致,否则加密或解密将不会正确执行。
相关文章:
Python 爬虫 AES DES加密反爬
当你遇到需要处理 AES 或 DES 加密的反爬虫机制时,Python 可以通过使用相应的库来解决这类问题。首先,我们需要理解 AES 和 DES 加密是什么: AES (Advanced Encryption Standard):一种广泛使用的对称加密算法,它使用相…...
(论文阅读30/100)Convolutional Pose Machines
30.文献阅读笔记CPMs 简介 题目 Convolutional Pose Machines 作者 Shih-En Wei, Varun Ramakrishna, Takeo Kanade, and Yaser Sheikh, CVPR, 2016. 原文链接 https://arxiv.org/pdf/1602.00134.pdf 关键词 Convolutional Pose Machines(CPMs)…...
vue3实现数据大屏内数据向上滚动,鼠标进入停止滚动 vue3+Vue3SeamlessScroll
1.效果图 2.npm下载依赖及main.js文件配置 npm install vue3-seamless-scroll --saveimport vue3SeamlessScroll from vue3-seamless-scroll;app.use(vue3SeamlessScroll) 3.html代码 <!-- scrollFlag为true时再渲染,vue3只要涉及到传值子页面需要加flag判断,否…...
WPF显示3D图形
C# 中的 WPF (Windows Presentation Foundation) 支持显示3D图形。WPF 使用 DirectX 作为底层图形引擎,这意味着它可以处理包括3D图形在内的复杂渲染任务。 在 WPF 中,你可以使用一些内置的类和控件来创建和显示3D对象。这包括 Viewport3D, Camera, Mod…...
Xrdp+Cpolar实现远程访问Linux Kali桌面
XrdpCpolar实现远程访问Linux Kali桌面 文章目录 XrdpCpolar实现远程访问Linux Kali桌面前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于…...
赚钱
《赚钱》 作者/罗光记 赚钱劳身影未安, 岁月匆匆易逝难。 银钱到手笑颜开, 酒醉灯昏影独寒。 花前月下欢声起, 万金财富待来年。 诗酒飘香梦中笑, 人生何求更多钱。...
Django command执行脚本
python web项目中经常会使用到脚本,一般来说有两种很简单的方法,一种是直接python function,另一种就是 django 自定义command。 对比常规脚本 这里举个简单的例子,比如初始化数据、文件名称为initialize_data.py (1…...
GLSL: Shader cannot be patched for instancing.
最近在 unity 里碰到了这么一个错误,只有这么点信息,让人看着挺懵逼的,后来发现,是因为 unity 的 terrain 组件在设置里勾了 Draw Instanced 选项导致的,感觉应该是 unity 的 bug。 因为错出在 2021,2022就…...
Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )
文章目录 一、表查询数据准备及测试环境搭建模型层前期准备测试环境搭建代码演示 二、ORM操作相关方法三、ORM常见的查询关键字四、ORM底层SQL语句五、双下划线查询数据查询(双下划线)双下划线小训练Django ORM __双下划线细解 六、ORM外键字段创建基础表…...
css 设置网页最小字体为12px
谷歌浏览器默认最小字体为12px,但保不准万一有一天谷歌取消这个默认设置,或者一些人在设置中改了最小字体,为了防止万一,故系统设置了最小字体,主要利用了min和var的特性 :root {--responsive-font-size-primary: max…...
Failed to restart networking.service: Unit networking.service not found.
虚拟机Vmware中的Ubuntu20.0没有网络,ifconfig命令没有IP 如果在VMware中运行的Ubuntu 20.04虚拟机没有网络,并且ifconfig命令没有显示IP地址,你可以采取以下几个步骤来诊断和解决问题: 确认虚拟机网络设置: 确保虚拟机的网络适配器是开启的,并且配置正确。确认是否选择…...
基于单片机设计的水平仪(STC589C52+MPU6050)
一、前言 【1】项目背景 水平仪是一种常见的测量工具,用于检测物体或设备的水平姿态。在许多应用中,如建筑、制造和航空等领域,保持设备的水平姿态是非常重要的。为了实现实时的水平检测和显示,基于单片机设计的水平仪是一个常见…...
射频与微波综合测试仪-4958手持式微波综合测试仪
4958 微波综合测试仪 频率范围:1MHz~20GHz 4958手持式微波综合测试仪测量频率范围可达1MHz~20GHz,集电缆和天线驻波比测试、不连续点故障定位测试、插入损耗和增益测试、频谱分析、功率测量等多种功能于一体,携带方便&…...
Redis内存淘汰机制
Redis内存淘汰机制 引言 Redis 启动会加载一个配置: maxmemory <byte> //内存上限 默认值为 0 (window版的限制为100M),表示默认设置Redis内存上限。但是真实开发还是需要提前评估key的体量,提前设置好内容上限。 此时思考一个问题…...
EXCEL——计算数据分散程度的相关函数
一、PERCENTIL函数 1.函数介绍 通常用来返回数据集给定百分点上的值。 2.函数解读 函数公式: PERCENTILE(数据, 百分点) 参数释义: 数据(必填):待处理的数组或数据区域。 百分点(必填)&…...
详解如何使用Jenkins一键打包部署SpringBoot项目
目录 1、Jenkins简介 2、Jenkins的安装及配置 2.1、Docker环境下的安装编辑 2.2、Jenkins的配置 3、打包部署SpringBoot应用 3.1、在Jenkins中创建执行任务 3.2、测试结果 1、Jenkins简介 任何简单操作的背后,都有一套相当复杂的机制。本文将以SpringBoot应…...
【JVM】内存区域划分、类加载机制(双亲委派模型图解)、垃圾回收(可达性分析、分代回收)
一、JVM简介 JVM (Java虚拟机) 是执行Java字节码的虚拟机。它是Java平台的核心,并且为Java代码提供了跨平台的能力。JVM 是一种虚拟的计算机,在其上运行的程序是Java字节码,它提供了Java代码在不同操作系统和硬件平台上执行的能力。JVM 将Ja…...
解决 requests 2.28.x 版本 SSL 错误
最近,在使用requests 2.28.1版本进行HTTP post传输时,您可能遇到了一个问题,即SSL验证失败并显示错误消息(Caused by SSLError(SSLCertVerificationError(1, [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get loc…...
hive数据质量规范
当谈到大数据处理和分析时,数据质量成为至关重要的因素。Hive作为一种常用的大数据查询和分析工具,也需要遵循一定的数据质量规范以确保数据的准确性、一致性和可靠性。本文将介绍Hive数据质量规范的相关内容,并提供代码示例来说明如何在Hive…...
Jenkinsfile+Dockerfile前端vue自动化部署
前言 本篇主要介绍如何自动化部署前端vue项目 其中,有两种方案: 第一种是利用nginx进行静态资源转发;第二种方案是利用nodejs进行启动访问; 各个组件版本如下: Docker 最新版本;Jenkins 2.387.3nginx …...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
