【Python3.6】フォルダ内の全ファイルのmd5値を求めて、JSONファイルに書き出すスクリプトを書きました~。

md5はファイルが持つ固有値のようなもので、ファイルが1byteでも変更されていれば、全く違う値になります。この特性を利用することで、ファイルの改ざんを用意に検知することが出来ます。

使い方

※Python3.6のインストールが必須です
checksum.pyをmd5値を求めたいファイルが入っているディレクトリ上に配置して下さい。

Pythonなら13行で出来るぜ(checksum.py)


import os, hashlib, json

choice = [x for x in os.listdir(".") if os.path.isfile(x)]
write_list = {}

for file_name in choice:
    checksum = ""
    with open(file_name, "rb") as f:
        checksum = hashlib.md5(f.read()).hexdigest()
    write_list[file_name] = checksum
        
with open("checksum.json", mode="wt", encoding="utf-8") as f:
    f.write(json.dumps(write_list, indent=4, sort_keys=True))

出力(checksum.json)


{
    "config.ini": "ed7e900002b180c151b9add6df25dd0c",
    "hentai-train.exe": "5b4257abaf354a2131ee3e95c131896c",
    "get_checksum.py": "d27ae6a808d0b87eb4c50476c8bf3ab8",
    "checksum.json": "d20ad0518888884da98b8379b61f1f8c",
    "README.md": "568527341e04cb86171c85b3de1b2c6a"
}
ジェシー
ああマイケル、Pythonはスマートでモダン!本当に素敵な言語なのね!
マイケル
ああ、ジェシー!!一度コイツを使ったらもう辞められないんだよ!!最高にファンキーなやつだよ奴さんは!

何に使えるの?

定期的に上記を実行するAPI用のスクリプトを書いて、WEBサーバー上で公開したりして遊ぼう!JSON形式なので加工も簡単だぜ!何ならJavaで上記を書いてみな!!夜が明けちまうぜヒャッハー!!

Pythonは以下の本がベストバウトだぜ!

[amazonjs asin=”4873117380″ locale=”JP” tmpl=”Small” title=”入門 Python 3″] [amazonjs asin=”487311778X” locale=”JP” tmpl=”Small” title=”退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング”] [amazonjs asin=”B06XRQS8PN” locale=”JP” tmpl=”Small” title=”ゲームを作りながら楽しく学べるPythonプログラミング (Future Coders(NextPublishing))”]

コメントを残す

メールアドレスが公開されることはありません。