某度旋转验证码逆向分析流程和源码

第一次 https://passport.baidu.com/cap/init 接口,请求的 ak 是固定值,当然不同场景不同网站是不一样的,_ 时间戳,ver=1,返回值 as、tk 都是后面会用到的。

请求https://passport.baidu.com/cap/style接口,会用到tk值,得到验证码图片

使用到的加密方法:AES,MD5,SHA1,SHA3(魔改了tostring)

逻辑:

1.首先请求init和style获取参数和图片信息

2.下载图片并获取旋转角度(网上找个开源旋转验证码模型)

3.fuid每个设备都是固定的参数 

4.fs需要加密两次,两次都是AES,第二次需要用第一次的加密参数和图片的backstr(style接口返回)

5.使用init和style参数请求log接口返回op=1即表示通过验证

ac_c=angle *238 / 360 ,可能会不定时改变

=========================================================

截止 2024-7-24:并未校验验证码轨迹,随便模拟一个就行,校验了旋转的角度参数ac_c

截止 2024-8-6:验证码增加了校验参数

535bed668e4f42cd9bfd2c0c47ad30fd.png

附源码:原创某度逆向接口(点个小star^^)

严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关

### 百度旋转验证码自动识别的技术方案 百度旋转验证码是一种通过拖动滑块调整图片至正确方向的方式,用于区分人类用户与机器人。这种类型的验证码相比传统的字符型验证码更具挑战性,因为其涉及的角检测图像处理技术较为复杂。 #### 图像预处理阶段 在实现百度旋转验证码的自动识别过程中,首要任务是对目标图片进行预处理。这一步骤通常包括去噪、灰化以及边缘增强等操作,目的是提高后续角计算的准确性[^2]。 ```python import cv2 import numpy as np def preprocess_image(image_path): image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) blurred = cv2.GaussianBlur(image, (5, 5), 0) # 去除噪声 edges = cv2.Canny(blurred, threshold1=30, threshold2=150) # 边缘检测 return edges ``` #### 角检测阶段 完成图像预处理后,需进一步分析图片的方向偏差。此部分可通过霍夫变换或其他几何方法提取直线特征并估算倾斜角。具体而言,利用 OpenCV 的 `HoughLinesP` 函数可有效获取线条参数。 ```python def detect_angle(edges): lines = cv2.HoughLinesP(edges, rho=1, theta=np.pi/180, threshold=50, minLineLength=100, maxLineGap=10) angles = [] if lines is not None: for line in lines: x1, y1, x2, y2 = line[0] angle = np.arctan2(y2-y1, x2-x1) * 180 / np.pi angles.append(angle) median_angle = np.median(angles) if angles else 0 return median_angle ``` #### 自动校正与模拟交互 基于上述步骤得出的目标偏移量,下一步便是驱动鼠标移动指定距离以完成验证动作。这里推荐借助 Selenium 或 PyAutoGUI 实现高精的操作仿真[^4]。 ```python from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() action = ActionChains(driver) slider_element = driver.find_element_by_class_name('your_slider_class') action.click_and_hold(slider_element).move_by_offset(median_angle*scaling_factor, 0).release().perform() ``` 以上即为一套完整的百度旋转验证码自动识别流程概述及其关键技术要点说明[^4]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值