這個模組實現了乙個通用的介面來實現多個不同的安全雜湊和訊息摘要演算法。包括fips安全雜湊演算法sha1,sha224,sha256,sha384和sha512(在fips 180-2中定義)以及rsa的md5演算法(在網際網路rfc 1321術語「安全雜湊」和「訊息摘要」是可互換的。較舊的演算法被稱為訊息摘要。現代術語是安全雜湊。
每種型別的雜湊都具有乙個命名建構函式(此模組中始終存在的雜湊演算法的建構函式為md5()
,sha1()
,sha224()
,sha256()
,sha384()
和sha512()
)。可以使用update()
方法以類位元組物件
填充這個物件(通常為位元組
)。在連線資料的任何時候,都可以使digest()
或hexdigest()
方法來向它請求摘要。
例一(計算一串資料的md5):
1view codeimport
hashlib
23 str1 = b"
hello
"4 str2 = b"
world
"5 str3 = b"
hello world"6
7 m1 = hashlib.md5() #
生成乙個md5物件
8 m1.update(str1) #
以bytes型別填充md5物件
9m1.update(str2)
10 m2 =hashlib.md5()
11m2.update(str3)
1213
#digest()返回傳遞給update()方法的資料的摘要。它是乙個大小為digest_size的位元組物件,包含的位元組可以在0到255整個範圍。
14print("
m1 hexdigest:
", m1.digest())
15print("
m2 hexdigest:
", m2.digest())16#
hexdigest()類似digest(),但是摘要以2倍長度的字串物件返回,只包含十六進製制數字。這可用於在電子郵件或其它非二進位制環境中安全交換資料。
17print("
m1 hexdigest:
", m1.hexdigest())
18print("
m2 hexdigest:
", m2.hexdigest())
1920
2122
2324 >>>:
25 m1 hexdigest: b'
^\xb6;\xbb\xe0\x1e\xee\xd0\x93\xcb"\xbb\x8fz\xcd\xc3
'26 m2 hexdigest: b'
^\xb6;\xbb\xe0\x1e\xee\xd0\x93\xcb"\xbb\x8fz\xcd\xc3'27
m1 hexdigest: 5eb63bbbe01eeed093cb22bb8f5acdc3
28 m2 hexdigest: 5eb63bbbe01eeed093cb22bb8f5acdc3
注:可以發現,只要資料一樣(格式不同),則md5碼相同(即update()是以原來的基礎繼續生成md5碼,而不是新內容覆蓋舊內容)。
只需更改建構函式即可使用不同的安全雜湊演算法,其呼叫方式與上面的完全一樣。
對於一次性資料,有中更精煉的寫法,示例如下(其餘演算法一樣):
1 md5 = hashlib.md5(b'hello world')
2print(md5.hexdigest())
hashlib.new
(name[, data])
是乙個通用建構函式,它接受所需演算法的字串名稱作為其第乙個引數。它也存在允許訪問上面列出的雜湊以及您的openssl庫可能提供的任何其他演算法。命名的建構函式比new()
快得多,應該是首選。
使用openssl提供的演算法使用new()
:
1 h = hashlib.new('view coderipemd160')
2 h.update(b"
hello world")
3print(h.hexdigest())
Python hashlib模組的使用示例
一.hashlib模組 用於加密相關的操作,3.x裡代替了md5模組和sha模組,主要提供 sha1,sha224,sha256,sha384,sha512,md5演算法。1.使用hashlib模組進行md5加密。import hashlib m hashlib.md5 m.update b hel...
Python hashlib加密模組常用方法解析
主要用於對字串的加密,最常用的為md5加密 import hashlib def get md5 data obj hashlib.md5 obj.update data.encode utf 8 result obj.www.cppcns.comhexdigest return result va...
Python hashlib模組實現MD5加密
md5訊息摘要演算法 英語 md5 message digest algorithm 一種被計算機安全領域廣泛使用的密碼雜湊函式,可以產生出乙個128位 16位元組 的雜湊值 hash value 用以提供訊息的完整性保護,用於確保資訊傳輸完整一致。md5是最常見的摘要演算法,速度很快,生成結果是固...