Python を使用してファイル md5 チェック値関数を生成する方法

高洛峰
リリース: 2017-01-14 11:48:00
オリジナル
2997 人が閲覧しました

はじめに

Linux には md5sum というコマンドがあり、ファイルの md5 値を生成できます。通常、結果は検証用にファイルに記録されます。たとえば、

[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
ログイン後にコピー

のように使用されます。 このうち、md5sum -c は、生成された md5 値が正しいかどうかを確認するために使用されます。

Python を使用してファイルの md5 値を生成し、md5sum の結果と同じ結果ファイルを生成します

Python は hashlib の md5 モジュールを使用して、ファイルの内容に対する md5 チェック コードを生成できます。md5sum と同じ結果ファイルを生成したい場合は、間に 2 つのスペースを入れて MD5 結果の値とファイル名を 1 行に出力するだけです。

テストコード:

# -*- 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)
ログイン後にコピー

実行結果:

[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
ログイン後にコピー

注目してください

Windows で開発されたコードを Linux に直接送信して実行すると、Windows では改行文字が rn であり、Linux では n であるため、コードの実行が失敗することがよくあります。一般に、変換が必要です。

まとめ

以上がこの記事の内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご不明な点がございましたら、メッセージを残してご連絡ください。 PHP中国語ウェブサイトをご利用いただき誠にありがとうございます。

Python を使用してファイル md5 チェック値関数を生成する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート