Python チェックサム
-
Python で
hashlib.md5()
関数を使用してMD5
ファイルのチェックサム
を生成およびチェックする -
Python で
os
モジュールを使用してMD5
ファイルのチェックサム
を生成およびチェックする
成功した人気のあるプログラミング言語に関して言えば、ハッシュはその重要な部分であることが証明されています。ハッシュのそのようなコンポーネントの 1つは、チェックサムと呼ばれる日常のプログラミングにおいて非常に重要であり、非常に関連性があります。
この記事では、チェックサムと、MD5
ファイル用にチェックサムを生成する方法について説明します。
チェックサム
は、ファイル内のエラー検出を目的として Python で使用されます。それらには、特定のファイルのデータを検証するという基本的なタスクがあります。非常に似ていますが、決定論的であるという点で、Python が提供する組み込みのハッシュとは異なります。
Python で hashlib.md5()
関数を使用して MD5
ファイルのチェックサム
を生成およびチェックする
hashlib
モジュールは、いくつかの異なるメッセージダイジェストおよびセキュアハッシュアルゴリズムの共通インターフェイスを実装するために使用されます。このメソッドを正常に実装するには、hashlib
モジュールを Python コードにインポートする必要があります。
ここでは、主に hashlib.md5()
関数を使用し、update()
および hexdigest()
関数を使用して、それぞれ 16 進値を更新および返します。
次のコードは、hashlib.md5()
関数を使用して、Python で MD5
ファイルのチェックサム
を生成およびチェックします。
import hashlib
def md5(file1):
md5h = hashlib.md5()
with open(file1, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
md5h.update(chunk)
return md5h.hexdigest()
このコードは、指定されたダイジェストを表す 16 進文字列
を返すことに注意してください。digest()
関数だけを使用すると、パックされたバイトが返されます。プログラマーは、目的の出力を念頭に置いて、これらの関数のいずれかを使用できます。
Python で os
モジュールを使用して MD5
ファイルのチェックサム
を生成およびチェックする
Python の os
モジュールは、オペレーティングシステムとの対話に役立ついくつかの関数へのアクセスを提供します。os
モジュールは広大で、いくつかのモジュールが含まれています。これらはすべて、さまざまな目的を果たすために使用されます。
ここでは、ランダムな画像をダウンロードし、作成した Python 関数を使用して、MD5
のチェックサムを計算し、最後に Unix コマンドを使用して生成されたチェックサムと比較します。
get_checksum()
関数の関数定義:
import hashlib
def get_checksum(filename, hash_function):
"""Generate checksum for file based on hash function (MD5).
Args:
filename (str): Path to file that will have the checksum generated.
hash_function (str): Hash function name - supports MD5
Returns:
str`: Checksum based on Hash function of choice.
Raises:
Exception: Invalid hash function is entered.
"""
hash_function = hash_function.lower()
with open(filename, "rb") as f:
bytes = f.read()
if hash_function == "md5":
readable_hash = hashlib.md5(bytes).hexdigest()
else:
Raise("{} is an invalid hash function. Please Enter MD5 value")
return readable_hash
次のコードは、上記で定義した get_checksum()
関数と os
モジュールを使用して、Python で MD5
ファイルのチェックサム
を生成およびチェックします。
import os
pic = "g_circle-300x300.png"
resmd5 = get_checksum(pic, "md5")
os.system("md5 {}".format(pic))
print("Hash Function: MD5 - Filename: {}".format(resmd5))
MD5
は広く使用されていますが、最近壊れていることが発見され、多くの欠陥が含まれています。ファイルのチェックサム
を生成してチェックするプロセスは非常にリスクが高い可能性があるため、この目的で MD5
ファイルを使用することはお勧めしません。
さらに、MD5
ファイルは、暗号で保護されたものが必要な場合、それが基準に達しているだけではないため、実際には最善ではありません。
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn