Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對象和類

Python 日期和時間

Python 高級知識

Python 參考手冊

Python程序查找文件的哈希值

Python 實(shí)例大全

在本文中,您將學(xué)習(xí)查找文件的哈希值并顯示它。

要理解此示例,您應(yīng)該了解以下Python編程主題:

散列函數(shù)獲取任意數(shù)量的數(shù)據(jù),并返回固定長度的位字符串。函數(shù)的輸出稱為摘要消息。

它們被廣泛用于密碼學(xué)中以進(jìn)行認(rèn)證。有許多哈希函數(shù),例如MD5,SHA-1等。請參考此頁面,以了解有關(guān)密碼學(xué)中哈希函數(shù)的更多信息。

在此示例中,我們將說明如何對文件進(jìn)行哈希處理。我們將使用SHA-1哈希算法。SHA-1的摘要的長度為160位。

我們不會一次全部提供文件中的數(shù)據(jù),因?yàn)槟承┪募浅4?,無法一次全部放入內(nèi)存中。將文件分成小塊將提高進(jìn)程內(nèi)存的效率。

查找哈希的源代碼

# Python程序來查找文件的SHA1消息摘要

# 導(dǎo)入hashlib模塊
import hashlib

def hash_file(filename):
   """"此函數(shù)返回SHA-1哈希
    傳遞給它的文件"""

   # 創(chuàng)建一個哈希對象
   h = hashlib.sha1()

   # 打開文件以二進(jìn)制模式讀取
   with open(filename,'rb') as file:

       # 循環(huán)直到文件末尾
       chunk = 0
       while chunk != b'':
           # 一次只讀取1024個字節(jié)
           chunk = file.read(1024)
           h.update(chunk)

   # 返回摘要的十六進(jìn)制表示形式
   return h.hexdigest()

message = hash_file("track1.mp3")
print(message)

輸出結(jié)果

633d7356947eec543c50b76a1852f92427f4dca9

在此程序中,我們以二進(jìn)制模式打開文件。散列函數(shù)在hashlib模塊中可用。我們使用while循環(huán)直到文件末尾。到達(dá)最后時,我們得到空字節(jié)對象。

在每次迭代中,我們僅從文件中讀取1024個字節(jié)(可以根據(jù)需要更改此值),并更新哈希函數(shù)。

最后,我們使用hexdigest()方法以十六進(jìn)制表示形式返回摘要消息。

Python 實(shí)例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清