在python中,从文件的最后4KB创建md5哈希

在python中,从文件的最后4KB创建md5哈希,python,hash,Python,Hash,在python中,给定一个非常大的文件(~700MB),如何仅从该文件的最后4096kb创建md5哈希?您可以使用将文件指针移动到文件末尾,对于md5: 我会读到这样一句话:它会帮你找到我想要的东西。谢谢。没问题,我承认我对你的帖子很感兴趣,我从来没有考虑过文件中只有md5'ing一部分,但是从我在读/正在读的线程中读到的内容来看,文件的第一部分(或者最后一部分)对md5是危险的,因为有些文件会有类似的“页眉”和“页脚”。我确信,这取决于您使用的文件类型,即第一个X或最后一个X位数通常是唯一的。

在python中,给定一个非常大的文件(~700MB),如何仅从该文件的最后4096kb创建md5哈希?

您可以使用将文件指针移动到文件末尾,对于md5:


我会读到这样一句话:它会帮你找到我想要的东西。谢谢。没问题,我承认我对你的帖子很感兴趣,我从来没有考虑过文件中只有md5'ing一部分,但是从我在读/正在读的线程中读到的内容来看,文件的第一部分(或者最后一部分)对md5是危险的,因为有些文件会有类似的“页眉”和“页脚”。我确信,这取决于您使用的文件类型,即第一个X或最后一个X位数通常是唯一的。只是好奇,为什么这是一个糟糕的问题?@ensnare我不知道。您切换了KB和KiB(4096000B的大小会很奇怪,所以我假设是KiB)。此外,仅对文件的一部分进行哈希和可能是个坏主意,因为文件可能有已知的页脚。例如,如果相同的文件出现在两个tarball的末尾,尽管tarball不同,您可能会得到相同的散列。
import hashlib
with open('really-large-file', 'rb') as f:
    f.seek(- 4096 * 1024, 2)
    print (hashlib.md5(f.read()).hexdigest())