Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結
今日目標站node

aHR0cHM6Ly9tLndjYmNoaW5hLmNvbS9sb2dpbi9vdGhlci1sb2dpbi5odG1sjson

分析請求

老規矩先抓包分析請求【圖1-1】:ide

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結

圖1-1網站

能夠看到提交的參數是 json 格式的數據,分別有 sign、password 這兩個比較明顯的加密,先逐個搜索一下。加密

定位加密 - sign

直接經過搜索參數名是能夠直接定位到加密位置的。【圖2-1】3d

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結

圖2-1code

打開【圖2-1】中第二個搜索結果,能夠看到比較明顯的加密位置。【圖2-2】blog

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結
圖2-2md5

從新請求能夠直接斷在咱們斷點的位置,變量 v 與 變量 g 的值都是 undefine,變量N是變量c哈希後大寫的結果。【圖2-3】ci

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結

圖2-3

咱們能夠用 Python 代碼驗證一下。

from hashlib import md5
def md5value(s):
    a = md5(s.encode()).hexdigest()
    return a
print(md5value('1570346144866').upper())
=============結果==================
7AB7BB567F34658742D95D9F6B72ECC34

定位加密 - password

按照上面的思路咱們搜索一下參數名 password , 搜索出來的結果比較多【圖3-1】。

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結

圖3-1

一個一個找太麻煩了,比較簡單的方法是直接用 XHR 斷點而後直接翻堆棧。

先根據 XHR 請求添加一個 XHR 斷點【圖3-2】

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結

圖3-2

從新請求後在右側堆棧欄逐步向上翻【圖3-3】,同時觀察左側 password 值的變化。能夠看到當斷點在【圖3-3】位置時,password 的值是咱們輸入的明文,到下一步時值就被加密過了。

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結

圖3-3
同時能夠定位 password 的加密位置在【圖3-4】

Python爬蟲進階必備 | 關於MD5 Hash 的案例分析與總結
圖3-4

加密邏輯也很是簡單。

from hashlib import md5
def md5value(s):
    a = md5(s.encode()).hexdigest()
    return a
print(md5value('11111111111').upper())
============結果==================
ADBC91A43E988A3B5B745B8529A90B61

到這裏總體的加密就分析出來了,很是簡單。

總結

同類型的加密網站還有:

5rG96L2m5LmL5a62

5piT6LS36YCa

5oOg6YeR6ZSB

5b2T5LmQ572R

5aW96LGG6I+c6LCx572R

像 md5 這類的 hash 用 Python 實現比 node.js 實現方便的多,不用扣取代碼,複用上面的 Python 代碼就能夠實現。

感興趣的朋友能夠試試上面的這些網站,總結出 md5 hash 的一些特徵。

鹹魚總結了一些簡單特徵:

  1. md5 hash的結果是固定不變的

  2. md5 hash 後的結果爲 16位 或 32 位 字母數字混合的結果

EOF

相關文章
相關標籤/搜索