23 常用模組 hashlib

2021-09-19 23:41:49 字數 1363 閱讀 5678

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 很...