Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie Python, um die MD5-Prüfwertfunktion für Dateien zu generieren

So verwenden Sie Python, um die MD5-Prüfwertfunktion für Dateien zu generieren

高洛峰
高洛峰Original
2017-01-14 11:48:003040Durchsuche

Vorwort

Unter Linux gibt es einen Befehl namens md5sum, der den MD5-Wert einer Datei generieren kann. Im Allgemeinen wird das Ergebnis zur Überprüfung in einer Datei aufgezeichnet. Beispielsweise wird es wie folgt verwendet:

[crazyant@localhost PythonMd5]$ more sample_file 
www.crazyant.net
www.51projob.com
[crazyant@localhost PythonMd5]$ md5sum sample_file > sample_file.md5file
[crazyant@localhost PythonMd5]$ more sample_file.md5file 
311d384505e3622ccf85d88930e2b0a0 sample_file
[crazyant@localhost PythonMd5]$ md5sum -c sample_file.md5file 
sample_file: OK

Unter anderem wird md5sum -c verwendet, um zu überprüfen, ob der generierte MD5-Wert korrekt ist.

Verwenden Sie Python, um Datei-MD5-Werte zu generieren und Ergebnisdateien zu generieren, die mit den MD5sum-Ergebnissen identisch sind

Python kann das MD5-Modul von Hashlib verwenden, um MD5-Prüfcodes für Dateiinhalte zu generieren. Wenn Sie dieselbe Ergebnisdatei wie MD5sum generieren möchten, müssen Sie nur den MD5-Ergebniswert und den Dateinamen in einer Zeile mit zwei Leerzeichen in der Mitte ausgeben.

Testcode:

# -*- encoding:utf-8 -*-
from hashlib import md5
import os
  
def generate_file_md5value(fpath):
 '''以文件路径作为参数,返回对文件md5后的值
 '''
 m = md5()
 # 需要使用二进制格式读取文件内容
 a_file = open(fpath, 'rb') 
 m.update(a_file.read())
 a_file.close()
 return m.hexdigest()
  
def generate_file_md5sumFile(fpath):
 fname = os.path.basename(fpath)
 fpath_md5 = "%s.md5" % fpath
 fout = open(fpath_md5, "w")
 fout.write("%s %s\n" % (generate_file_md5value(fpath), fname.strip()))
 print "generate success, fpath:%s" % fpath_md5
 fout.flush()
 fout.close()
  
if __name__ == "__main__":
 fpath = "/home/users/workbench/PythonMd5/sample_file"
 # 测试一:以文件路径作为参数,获得md5后的字符串
 print generate_file_md5value(fpath)
  
 # 测试二:生成和linux命令:md5sum同样结果的.md5文件
 generate_file_md5sumFile(fpath)

Laufergebnisse:

[crazyant@localhost PythonMd5]$ python generateMd5file.py
311d384505e3622ccf85d88930e2b0a0
generate success, fpath:/home/crazyant/workbench/PythonMd5/sample_file.md5
[crazyant@localhost PythonMd5]$ md5sum -c sample_file.md5
sample_file: OK

Hinweis

Wenn der unter Windows entwickelte Code direkt zur Ausführung an Linux übermittelt wird, schlägt die Codeausführung häufig fehl, da das Newline-Zeichen unter Windows rn und unter Linux n ist. Im Allgemeinen ist eine Konvertierung erforderlich.

Zusammenfassung

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels jedem beim Lernen oder Arbeiten helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung der chinesischen PHP-Website.

Weitere verwandte Artikel zur Verwendung von Python zum Generieren der MD5-Prüfwertfunktion für Dateien finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Lernen der Python-ListensyntaxNächster Artikel:Lernen der Python-Listensyntax