Python的hashlib模組學習

2021-09-24 12:30:47 字數 1392 閱讀 5134

python的hashlib模組提供一些常用的加密功能

例如獲取字串'nobody inspects the spammish repetition'的md5校驗值

in [48]: import hashlib

in [49]: m=hashlib.md5()

in [50]: m.update('nobody inspects')

in [51]: m.update('the spammish repetition')

in [52]: m.digest()

out[52]: '%\x8d3\xf9,:k\xe0?\xbb0+\xc4k\x94s'

in [53]: m.digest_size

out[53]: 16

in [54]: m.block_size

out[54]: 64

in [55]: m.hexdigest()

out[55]: '258d33f92c3a6be03fbb302bc44b9453'

in [56]: m.digest_size

out[56]: 16

in [57]: m.block_size

out[57]: 64

這裡定義乙個hash物件m,使用hashlib模組提供的md5()函式,還可以是

md5(), sha1(), sha224(), sha256(), sha384(), and sha512()

也可以根據作業系統提供的hash演算法,使用new()選擇openssl庫提供的加密演算法

sha384和sha512在32位系統上使用會比較慢

update(arg)  更新hash物件,重複使用update(arg)等價於一次更新多個字串的組合

m.update(a)和m.update(b)等價於m.update(a+b)

digest()   返回加密後的字串

hexdigest()  返回加密碼後的16進製制字串

digest_size  是加密後的雜湊值位元組

block_size  資料塊大小

案例:

def ge***5(strfile):

fh=open(strfile,"rb")

m=md5()

strread=""

while true:

strread=fh.read()

if not strread:

break

m.update(strread)

strmd5=m.hexdigest()

if fh:

fh.close()

return strmd5

print ge***5(__file__)

python中的hashlib模組

hashlib是乙個提供字串加密功能的模組,包含md5和sha的演算法,md5和sha是摘要演算法,摘要演算法是什麼呢 也可以稱為雜湊演算法,離散演算法。通過乙個函式將任意長度的資料轉化為乙個長度固定的資料串,摘要函式是乙個單向函式,計算f data 很容易,但是通過digest反推data非常困難...

python學習 hashlib模組

hashlib hash,譯做 雜湊 也有直接音譯為 雜湊 的。把任意長度的輸入,通過某種hash演算法,變換成固定長度的輸出,該輸出就是雜湊值,也稱摘要值。該演算法就是雜湊函式,也稱摘要函式。md5是最常見的摘要演算法,速度很快,生成結果是固定的16位元組,通常用乙個32位的16進製制字串表示。s...

python模組詳解 hashlib

用於加密相關的操作,在python3中替代了md5和sha模組,主要提供sha和md5演算法。md5import hashlib m hashlib.md5 呼叫md5方法 m.update b hello print m.digest b x8b x1a x99s xc4a x12 x96 xa8...