import hashlib
md5 = hashlib.md5(
)md5.update(b'123456'
)print
(md5.hexdigest())
#hexdigest hex是16進製制,digest是摘要
輸出:
sha演算法會隨著演算法複雜程度的增加,摘要的時間成本與空間成本會越來越大。
import hashlib
usr =
input
('username :'
)pwd =
input
('password : '
)with
open
('userinfo'
)as f:
for line in f:
user,passwd,role = line.split(
'|')
md5 = hashlib.md5(
) md5.update(
bytes
(pwd,encoding=
'utf-8'))
md5_pwd = md5.hexdigest(
)if usr == user and md5_pwd == passwd:
print
('登入成功'
)
但是用排列組合,將所有的組合形式都列出來,放到乙個庫中,這樣可以通過撞庫的方式,來實現解密,通過加鹽的方式,我們可以避免這種情況的出現
靜態加鹽
import hashlib # 提供摘要演算法的模組
md5 = hashlib.md5(
bytes
('鹽'
,encoding=
'utf-8'))
#『鹽』可以是任何的字元
# md5 = hashlib.md5()
md5.update(b'123456'
)print
(md5.hexdigest(
))
動態加鹽
import hashlib
md5 = hashlib.md5(
bytes
('鹽'
,encoding=
'utf-8'
)+b''
)#可以在最後的b''中加入隨機的內容,比如使用者名稱的一部分。
# md5 = hashlib.md5()
md5.update(b'123456'
)print
(md5.hexdigest(
))
python常用模組 hashlib模組
python的hashlib提供了常見的摘要演算法,如md5 sha1等 什麼是摘要演算法了?摘要演算法又稱雜湊演算法 雜湊演算法。它通過乙個函式,把任意長度的資料轉化魏乙個長度固定的資料串 通常用十六進製制的字串表示 摘要演算法就是通過摘要函式f 對任意長度的資料data計算出固定長度的摘要dig...
python 常用模組 hashlib
大致記錄一下hashlib模組md5方法使用過程中踩過的坑 import hashlib hash hashlib.md5 hash.update b timgo hash.hexdigest 594a21ea0be60ae5f36ee00ec177fab3 hash.update b timgo ...
Python常用模組之hashlib
1.摘要演算法簡介 python的hashlib提供了常見的摘要演算法,如md5 摘要演算法就是通過摘要函式f 對任意長度的資料data計算出固定長度的摘要digest,目的是為了發現原始資料是否被人篡改過。摘要演算法之所以能指出資料是否被篡改過,就是因為摘要函式是乙個單向函式,計算f data 很...