簡體   English   中英

在 Python 中生成多個文件的一個 MD5/SHA1 校驗和

[英]Generating one MD5/SHA1 checksum of multiple files in Python

我瀏覽了幾個關於在 Python 中計算文件校驗和的主題,但沒有一個回答關於多個文件中的一個總和的問題。 我在子目錄中有幾個文件,想確定其中一個或多個文件是否有任何變化。 有沒有辦法從多個文件中生成一個總和?

編輯:這是我獲取總和列表的方式:

checksums = [(fname, hashlib.md5(open(fname, 'rb').read()).digest()) for fname in flist]

所以我做到了:)這樣,就為文件列表生成了一個哈希值。

hash_obj = hashlib.md5(open(flist[0], 'rb').read())
for fname in flist[1:]:
    hash_obj.update(open(fname, 'rb').read())
checksum = hash_obj.digest()

謝謝PM 2Ring的輸入!

請注意,md5已被破解,因此只能將其用於非安全性至關重要的目的。

比Artur的回答略干凈。 無需特別對待第一個元素。

def calculate_checksum(filenames):
    hash = hashlib.md5()
    for fn in filenames:
        if os.path.isfile(fn):
            hash.update(open(fn, "rb").read())
    return hash.digest()

(如果願意,可以刪除os.path.isfile() 。)

import subprocess
cmd =input("Enter the command : ")
trial = subprocess.run(["powershell","-Command",cmd])
#Powershell command : Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "filepath\*.*" -Recurse -force)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM