Python爬虫进阶必备 | 关于MD5 Hash 的案例分析与总结
今日目標站
aHR0cHM6Ly9tLndjYmNoaW5hLmNvbS9sb2dpbi9vdGhlci1sb2dpbi5odG1s
分析請求
老規矩先抓包分析請求【圖1-1】:
圖1-1可以看到提交的參數是 json 格式的數據,分別有 sign、password 這兩個比較明顯的加密,先逐個搜索一下。
定位加密 - sign
直接通過搜索參數名是可以直接定位到加密位置的。【圖2-1】
圖2-1打開【圖2-1】中第二個搜索結果,可以看到比較明顯的加密位置。【圖2-2】
圖2-2重新請求可以直接斷在我們斷點的位置,變量 v 與 變量 g 的值都是 undefine,變量N是變量c哈希后大寫的結果。【圖2-3】
圖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】。
圖3-1一個一個找太麻煩了,比較簡單的方法是直接用 XHR 斷點然后直接翻堆棧。
先根據 XHR 請求添加一個 XHR 斷點【圖3-2】
圖3-2重新請求后在右側堆棧欄逐步向上翻【圖3-3】,同時觀察左側 password 值的變化。可以看到當斷點在【圖3-3】位置時,password 的值是我們輸入的明文,到下一步時值就被加密過了。
圖3-3同時可以定位 password 的加密位置在【圖3-4】
圖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
總結
以上是生活随笔為你收集整理的Python爬虫进阶必备 | 关于MD5 Hash 的案例分析与总结的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 硬件知识 UART硬件介绍
- 下一篇: 解锁门禁系统新姿势--人脸识别智能门禁或
