您好,登录后才能下订单哦!
本文小编为大家详细介绍“python怎么实现登录界面”,内容详细,步骤清晰,细节处理妥当,希望这篇“python怎么实现登录界面”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
第一种:直接请求
点击登录会发送请求,参数看上图
实际提交的参数, 看下图,图中圈出来的基本都是可以找到的,就在请求的 HTML 中。
而 fp 参数和 eid 参数实际是固定的。所以可以直接写死。看到了一个 pubKey ,我觉得看到这个玩意基本都能猜到这是一个 RSA 加密了,加密的就是 密码了,
然后还有一个 seqSid 参数 和 一个 authcode 参数
seqSid 参数是个接口返回的响应内容,全局搜索 _jdtdmap_sessionId 就会找到这个接口。
authcode 这个参数就是滑动之后生成的参数,也是最恶心的一个参数。
authcode 参数来源:
请求 URL:
参数:
响应:validate 就是 authcode
这个请求参数中实际只有 d 参数是最重要的,其他的就比较简单了。
c: 是获取验证码图片时返回的 challenge 参数。 slide/g.html
bg 和 patch 就分别是背景图和缺口形状的图片
识别这个距离的代码,是从网上复制的,忘了是从哪里来的了。
def test_demo_cv2(self): """ 得到缺口位置 :return: """ block = cv2.imread("bg.jpg", 0) template = cv2.imread("patch.jpg", 0) w, h = template.shape[::-1] # 二值化后的图片名称 blockName = "block.jpg" templateName = "template.jpg" # 将二值化后的图片进行保存 cv2.imwrite(blockName, block) cv2.imwrite(templateName, template) block = cv2.imread(blockName) block = cv2.cvtColor(block, cv2.COLOR_RGB2GRAY) block = abs(255 - block) cv2.imwrite(blockName, block) block = cv2.imread(blockName) template = cv2.imread(templateName) # 获取偏移量 result = cv2.matchTemplate(block, template, cv2.TM_CCOEFF_NORMED) # 查找block在template中的位置,返回result是一个矩阵,是每个点的匹配结果 x, y = np.unravel_index(result.argmax(), result.shape) cv2.rectangle(block, (y, x), (y + w, x + h), (7, 249, 151), 2) cv2.imshow('block', block) cv2.waitKey(0) print("x方向的偏移", int(y * 0.4 + 18), 'x:', x, 'y:', y) return y
但是有时候不准确。
w: 验证码的宽,固定 280
appID: 固定值
product:固定值
scene: 固定值
e: 固定值
s: 全局搜索 _jdtdmap_sessionId
都是页面中值。
最后说一下 d , d 的位置:在 slide.js 中,名字中间有版本号,没写
g 的值
这也就是轨迹了列表了,对轨迹列表进行加密生成了 d 参数
轨迹列表的特点:
第一组,坐标 x 是固定的
最后一组 x - 第一组的 x = 滑动的距离
y 的值变化很小
生成轨迹的方法很多,但是好像能百度到的都没有什么用了。
生成轨迹列表后,传递参数到加密的函数中,返回加密的参数 d
加密的函数位置:
读到这里,这篇“python怎么实现登录界面”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。