python—hashlib模組使用詳解
這個模組實現了一個通用的介面來實現多個不同的安全雜湊和訊息摘要演算法。包括FIPS安全雜湊演算法SHA1,SHA224,SHA256,SHA384和SHA512(在FIPS 180-2中定義)以及RSA的MD5演算法(在因特網 RFC 1321術語“安全雜湊”和“訊息摘要”是可互換的。較舊的演算法被稱為訊息摘要。現代術語是安全雜湊。
每種型別的雜湊都具有一個命名建構函式(此模組中始終存在的雜湊演算法的建構函式為md5()
,sha1()
,sha224()
,sha256()
,sha384()
和sha512()
)。可以使用update()
方法以類位元組物件填充這個物件(通常為位元組
)。在連線資料的任何時候,都可以使digest()
或hexdigest()
方法來向它請求摘要。
例一(計算一串資料的MD5):
1 import hashlib 2 3 str1 = b"hello " 4 str2 = b"world" 5 str3 = b"hello world" 6 7 m1 = hashlib.md5() #生成一個md5物件 8 m1.update(str1) #以bytes型別填充md5物件 9 m1.update(str2) 10 m2 = hashlib.md5() 11 m2.update(str3) 12 13 #digest()返回傳遞給update()方法的資料的摘要。它是一個大小為digest_size的位元組物件,包含的位元組可以在0到255整個範圍。 14 print("m1 hexdigest: ", m1.digest()) 15 print("m2 hexdigest: ", m2.digest()) 16 #hexdigest()類似digest(),但是摘要以2倍長度的字串物件返回,只包含十六進位制數字。這可用於在電子郵件或其它非二進位制環境中安全交換資料。 17 print("m1 hexdigest: ", m1.hexdigest()) 18 print("m2 hexdigest: ", m2.hexdigest()) 19 20 21 22 23 24 >>>: 25 m1 hexdigest: b`^xb6;xbbxe0x1exeexd0x93xcb"xbbx8fZxcdxc3` 26 m2 hexdigest: b`^xb6;xbbxe0x1exeexd0x93xcb"xbbx8fZxcdxc3` 27 m1 hexdigest: 5eb63bbbe01eeed093cb22bb8f5acdc3 28 m2 hexdigest: 5eb63bbbe01eeed093cb22bb8f5acdc3
View Code
注:可以發現,只要資料一樣(格式不同),則MD5碼相同(即update()是以原來的基礎繼續生成MD5碼,而不是新內容覆蓋舊內容)。
只需更改建構函式即可使用不同的安全雜湊演算法,其呼叫方式與上面的完全一樣。
對於一次性資料,有中更精煉的寫法,示例如下(其餘演算法一樣):
1 md5 = hashlib.md5(b`hello world`) 2 print(md5.hexdigest())
hashlib.new
(name[, data])-
是一個通用建構函式,它接受所需演算法的字串名稱作為其第一個引數。它也存在允許訪問上面列出的雜湊以及您的OpenSSL庫可能提供的任何其他演算法。命名的建構函式比
new()
快得多,應該是首選。
使用OpenSSL提供的演算法使用new()
:
1 h = hashlib.new(`ripemd160`) 2 h.update(b"hello world") 3 print(h.hexdigest())
View Code
相關文章
- python模組之hashlibPython
- Python學習——hashlib模組Python
- Python模組分析:第2節-hashlib加密模組Python加密
- 每週一個 Python 模組 | hashlibPython
- python常用模組補充hashlib configparser logging,subprocess模組Python
- hashlib、logging模組
- 模組學習之hashlib模組
- python模組詳解Python
- Python3 pickle模組的使用詳解Python
- Python之time模組詳解Python
- 序列化模組,隨機數模組,os模組,sys模組,hashlib模組隨機
- python之logging日誌模組詳解Python
- Python 正規表示式模組詳解Python
- python3.x中argparse模組詳解Python
- python IO模組【二】:open函式詳解Python函式
- difflib模組詳解
- psutil模組詳解
- matplotlib模組詳解
- 紅外模組詳解
- lms框架模組詳解框架
- 詳解Python中sys模組的功能與應用Python
- Python時間處理常用模組及用法詳解!Python
- Django之使用者認證模組詳解Django
- Python元組詳解Python
- 詳解AFNetworking的HTTPS模組HTTP
- Python3 中 configparser 模組解析配置的用法詳解Python
- Python logging模組的使用Python
- Python中模組的使用Python
- 反射,hashlib模組,正則匹配,冒泡,選擇,插入排序反射排序
- python的os模組的常見函式及用途詳解Python函式
- 樹莓派OLED模組的使用教程大量例程詳解樹莓派
- re模組 函式模式詳解函式模式
- Node中fs模組 API詳解API
- Python模組 adorner 的使用示例Python
- python inspect模組簡單使用Python
- python logging模組使用總結Python
- Python 中argparse模組的使用Python
- python 模組:itsdangerous 模組Python
- Python模組:time模組Python