知乎模擬登錄signature Python演算法實現
上次說要分享下的,結果過個年全忘了,現在來填坑。
先上代碼, Python 2.7
#!/usr/bin/env python#-*- coding:utf-8 -*- #Author: Chenimport sysreload(sys)sys.setdefaultencoding(utf-8)from hashlib import sha1import hmacfrom time import timedef get_signal(time_stamp): """ 傳入一個時間戳 :param time_stamp: :return: signature """ a = hmac.new("d1b964811afb40118a12068ff74a12f4", digestmod=sha1) # HMAC key a.update("password") # 固定字元串 a.update("c3cef7c66a1843f8b3a9e6a1e3160e20") # clienId a.update("com.zhihu.web") # 固定字元串 a.update(time_stamp) # timeStamp return a.hexdigest()
原理並不難,要熟悉js調試就問題不大。
首先獻上Fiddler的抓包截圖
client_id 固定值
signature 動態生成
其他的參數除了用戶名,密碼都是固定的值,不加以討論。
本來是應該把調試過程也寫上來的,但是晚上還有事,等有機會再填坑吧 - -
相關技術可以參考
Python 爬蟲如何獲取 JS 生成的 URL 和網頁內容?python hmac-sha1加密實現
推薦閱讀:
※windows7設置印表機共享
※調試程序時,設置斷點的原理是什麼?
※人人都可以製作的三種基礎外掛教程(附GitHub源碼)
※一次被攻擊的體驗
※右鍵菜單 添加新的 文件對象關聯菜單