1. 程式人生 > >常用模組——hashlib模組

常用模組——hashlib模組

hashlib模組

hashlib是一種演算法,將一個任意長的資料根據計算得到一個固定長度的特徵碼。

特徵:

  不同輸入可能會有相同的結果,但是機率特別小。

  相同輸入必然得到相同的結果。

  由於雜湊(特徵)的性質從原理上來看是不可能被反解的。

應用場景:

用來驗證兩個輸入的資料是否一致

1.密碼驗證:

  客戶端通過加密,傳送加密的密碼給服務端

2.驗證資料是否被篡改,比如遊戲安裝包,有沒有被改過。

為了防止被別人撞庫成功,可用提升密碼的複雜度,其次可以為密碼加鹽(加點內容進去)

用法

import hashlib
res = hashlib.md5('
123'.encode('utf-8'))#MD5加密方法 #加密的東西必須為二進位制位 print(res.hexdigest())#以十六進位制數字顯示

 撞庫的原理是將常用的內容通過儲存對應關係,來解析haslib的到的值是什麼。

所以除了增加密碼複雜度的方法,還可以通過加鹽的方法使得不被撞庫破解。

m = hashlib.md5('123'.encode('utf-8'))
print(m.hexdigest())
m.update('ssssdf'.encode('utf-8'))#加鹽的方式
print(m.hexdigest())
#202cb962ac59075b964b07152d234b70
#7b489317c98ae4d4594c23fa0f4725d1