English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Python

Controllo dei flussi Python

Funzione in Python

Tipi di dati in Python

Operazioni di file Python

Oggetti e classi Python

Date e ora Python

Conoscenze avanzate Python

Manuale di riferimento Python

Programma Python per trovare l'hash di un file

Python 实例大全

In questo articolo, imparerai a trovare l'hash di un file e a mostrarlo.

Per comprendere questo esempio, dovresti sapere il seguenteProgrammazione PythonArgomento:

L'algoritmo di hash ottiene una quantità qualsiasi di dati e restituisce una stringa di bit di lunghezza fissa. L'output della funzione è chiamato messaggio di riassunto.

它们被广泛用于密码学中以进行认证。有许多哈希函数,例如MD5,SHA-1等。请参考此页面,以了解有关密码学中哈希函数的更多信息。

在此示例中,我们将说明如何对文件进行哈希处理。我们将使用SHA-1哈希算法。SHA-1的摘要的长度为160位。

我们不会一次全部提供文件中的数据,因为某些文件非常大,无法一次全部放入内存中。将文件分成小块将提高进程内存的效率。

查找哈希的源代码

# Python程序来查找文件的SHA1消息摘要
# 导入hashlib模块
import hashlib
def hash_file(filename):
   """"此函数返回SHA-1哈希
    传递给它的文件"""
   # 创建一个哈希对象
   h = hashlib.sha1()
   # 打开文件以二进制模式读取
   with open(filename,'rb') as file:
       # 循环直到文件末尾
       chunk = 0
       while chunk != b''
           # 一次只读取1024个字节
           chunk = file.read(1024)
           h.update(chunk)
   # 返回摘要的十六进制表示形式
   return h.hexdigest()
message = hash_file("track1.mp3")
print(message)

输出结果

633d7356947eec543c50b76a1852f92427f4dca9

在此程序中,我们以二进制模式打开文件。散列函数在hashlib模块中可用。我们使用while循环直到文件末尾。到达最后时,我们得到空字节对象。

在每次迭代中,我们仅从文件中读取1024个字节(可以根据需要更改此值),并更新哈希函数。

最后,我们使用hexdigest()方法以十六进制表示形式返回摘要消息。

Python 实例大全