|
文章目录
1.验证码申请
2.提取js参数
2.验证码注册
3.计算滑块位置
4.验证
5.完整代码
数美验证码官网:https://www.ishumei.com/trial/captcha.html
1.验证码申请
打开控制台多看几遍请求过程,就大抵明白请求步骤了,这里就不再细说。
api: ‘https://captcha.fengkongcloud.com/ca/v1/conf?’
params= { 'organization': 'RlokQwRlVjUrTUlkIqOg', 'model': 'slide', 'sdkver': '1.1.3', 'rversion': '1.0.3', 'appId': 'default', 'lang': 'zh-cn', 'channel': 'YingYongBao', 'callback': 'sm_{}'.format(int(time.time() * 1000)) }
该接口返回的js参数,是下一步需要请求的目标。
2.提取js参数
js地址:https://castatic.fengkongcloud.com/pr/auto-build/v1.0.3-70/captcha-sdk.min.js
需要提取该js中的参数名,会在最后验证的时候使用。
不过一般情况下参数名不会变,也可以省略此处,在后面写死。
在该js文件中的参数是倒序的
2.验证码注册
api: https://captcha.fengkongcloud.com/ca/v1/register?
bg和fg是验证码图片地址。 https://castatic.fengkongcloud.com/crb/+bg
3.计算滑块位置
根据上一步可以得到验证图片的地址。
验证码图片:https://castatic.fengkongcloud.com/crb/set-000006/v2/a13e3325e9f864fa42a94a6e07cd95fc_bg.jpg
滑块图片:https://castatic.fengkongcloud.com/crb/set-000006/v2/a13e3325e9f864fa42a94a6e07cd95fc_fg.png
使用opencv查找并匹配图像模板中的滑块。
需要注意的是,这里是以原图计算的,而页面上的图片大小只有(300,150),(应用不同的产品时图片大小可能也不同)
所以需要按比例进行缩小。
4.验证
api:https://captcha.fengkongcloud.com/ca/v2/fverify?
params = { 'protocol': '70', 'organization': 'RlokQwRlVjUrTUlkIqOg', 'rversion': '1.0.3', 'oe': 'V/QxFC7ISm1=', 'nj': '1ISY9IKNM+OGjwl0F7LP...省略...7VOki5p4sm+h/qMX2QAhN/4w', 'zl': '8LwMmaImogs=', 'sq': '14RHMSbfhJU=', 'kh': 'qCcI31wL/Fs=', 'mn': '4AAyKWNy6K0=', 'rid': '20210113105643e313f68a420c9d240d', 'ch': 'uiJ+hjbCOka=', 'yv': 'b9NFDsBKGcg=', 'ga': 'WssDiJ1wOQI=', 'ko': '14bDqW72JnI=', 'callback': 'sm_1610506618948', 'act.os': 'web_pc', 'vj': 'IFXKu8Pjb3k=', 'ostype': 'web', 'sdkver': '1.1.3' }
params参数里的 oe,mn,kh等等,都经过了DES加密。
验证后会返回,
message = success,riskLevel=PASS 说明验证通过
5.完整代码
这里没有文章修改权限,代码放在别的平台方便更新。
https://blog.csdn.net/weixin_43582101/article/details/112553479
|
|