Python 中的安全雜湊和訊息摘要


對於安全雜湊和訊息摘要過程,我們應該使用 hashlib 模組。該模組為不同的安全雜湊演算法(如 SHA1、SHA224、SHA256、SHA512 等)實現了通用介面。此外還有 RSA 的 MD5 演算法。較舊的演算法稱為訊息摘要,新方法稱為安全雜湊。

要使用此模組,我們需要在 Python 程式碼中匯入 hashlib 模組。

import hashlib

在此方法中,存在一些預定義的演算法,如 md5、sha1、sha224、sha256、sha512。我們可以從 OpenSSL 庫中新增其他演算法。

hashlib 模組的一些方法和常量如下:

常量 hashlib.algorithm_guranteed

它將返回雜湊演算法的名稱,這些演算法保證在所有不同平臺上都受此模組支援。

常量 hashlib.algorithm_available

它將返回在執行的 Python 直譯器中可用的雜湊演算法的名稱。

常量 hashlib.digest_size

它將返回結果雜湊的大小(以位元組為單位)。

常量 hashlib.block_size

它將返回雜湊演算法的內部塊大小(以位元組為單位)。

方法 hashlib.new(name[, data])

這是一個建構函式。它以所需的演算法名稱作為其第一個引數。它可以使用預定義的雜湊或 OpenSSL 庫中的其他演算法。

方法 hashlib.update(arg)

此方法用於使用給定引數更新雜湊物件。此函式的重複呼叫等效於使用連線引數的單個呼叫。

方法 hashlib.digest()

此方法用於返回透過 update 方法傳遞的摘要資料。位元組物件的大小與 digest_size 相同。它可能包含範圍從 0 到 255 的所有位元組。

方法 hashlib.hexdigest()

此方法與 digest 方法相同,但結果僅包含十六進位制值。此方法用於非常輕鬆地透過網際網路傳送資料。

示例程式碼

即時演示

import hashlib
my_hash1 = hashlib.md5() #Choose md5 and update with a bytes
update_bytes = b'Python123'
my_hash1.update(update_bytes)
print("Result after digesting: " + str(my_hash1.hexdigest()))
print("Digest Size: " + str(my_hash1.digest_size))
my_hash2 = hashlib.sha256() #Choose SHA256 and update with same bytes
my_hash2.update(update_bytes)
print("Result after digesting: " + str(my_hash2.hexdigest()))
print("Digest Size: " + str(my_hash2.digest_size))

輸出

Result after digesting: ae35eacb1cb6f6d38c29a04ecb2d7471
Digest Size: 16
Result after digesting: bba32ba33d6a7f3e02a96e2d7ee6860765780aee42b878007369e373ff419b1e
Digest Size: 32

更新於: 2019-07-30

1K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.