您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。