python學習 hashlib模組

2021-10-04 23:16:38 字數 1238 閱讀 5644

hashlib

hash,譯做「雜湊」,也有直接音譯為「雜湊」的。把任意長度的輸入,通過某種hash演算法,變換成固定長度的輸出,該輸出就是雜湊值,也稱摘要值。該演算法就是雜湊函式,也稱摘要函式。

md5是最常見的摘要演算法,速度很快,生成結果是固定的16位元組,通常用乙個32位的16進製制字串表示。sha1演算法更安全點,它的結果是20位元組長度,通常用乙個40位的16進製制字串表示。而比sha1更安全的演算法是sha256和sha512等等,不過越安全的演算法越慢,並且摘要長度更長。

hashlib模組

python內建的hashlib模組為我們提供了多種安全方便的摘要方法

當前,在大部分作業系統下,hashlib模組支援md5(),sha1(), sha224(), sha256(), sha384(), sha512(), blake2b(),blake2s(),sha3_224(), sha3_256(), sha3_384(), sha3_512(), shake_128(), shake_256()等多種hash構造方法。這些構造方法在使用上通用,返回帶有同樣介面的hash物件,對演算法的選擇,差別只在於構造方法的選擇。例如sha1()能建立乙個sha-1物件,sha256()能建立乙個sha-256物件。然後就可以使用通用的update()方法將bytes型別的資料新增到物件裡,最後通過digest()或者hexdigest()方法獲得當前的摘要。

注意了,update()方法現在只接受bytes型別的資料,不接收str型別。

# -*- encoding:utf-8 -*-

import hashlib

defmd5_of_path

(path)

: v_md5 = hashlib.new(

"md5"

)for i in

open

(path,

"rb"):

v_md5.update(i)

return v_md5.hexdigest(

).encode(

"utf-8"

)x = md5_of_path(

"file.xlsx"

)print

(x)'''

或者不遍歷,將for i in open(path, "rb"):

v_md5.update(i)

直接寫為 i=open(path, "rb").read()

'''

最終結果為該檔案的md5值。

Python模組學習之hashlib

我們可以利用這些介面簡單快速的生成雜湊值 例如 md5為例,其它的一樣 d hashlib.md5 d.update msg 使用新資料更新雜湊,d.update a 後再呼叫d.update b 與d.update a b 效果是一樣的 print d.digest 將摘要作為原始位元組字元返回 ...

Python的hashlib模組學習

python的hashlib模組提供一些常用的加密功能 例如獲取字串 nobody inspects the spammish repetition 的md5校驗值 in 48 import hashlib in 49 m hashlib.md5 in 50 m.update nobody insp...

python學習 59 hashlib模組

用於加密相關的操作,3.x裡代替了md5模組和sha模組 加密功能 import hashlib obj hashlib.md5 如果在md5裡加上自己設定的引數,別的解密軟體就不容易解密了,例如 hashlib.md5 asdfg encode utff 8 obj.update hello en...