0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python3でファイルのメッセージダイジェストを求めたい

Posted at

Python3でファイルのメッセージダイジェストを求める方法を紹介します。ここではSHA256を例にします。

python3.11以降の場合、hashlib.file_digestを利用します。

import hashlib
with open('INPUT.txt', 'rb') as f:
    digest = hashlib.file_digest(f, "sha256")
print(digest.hexdigest())
#=> 6f67ea379608add8b4f3c0a3c95c0e70ab2752405de7c69c152faabd5870305e

それ以前のバージョンの場合は、ファイルを自前で読み込む必要があります。

まずファイル内容をすべてメモリ上に展開してよい場合は以下のようなコードになります。

import hashlib
with open('INPUT.txt', 'rb') as f:
    digest = hashlib.sha256(f.read())
print(digest.hexdigest())
#=> 6f67ea379608add8b4f3c0a3c95c0e70ab2752405de7c69c152faabd5870305e

ファイルを少しずつ読み込みながら、メッセージダイジェストを求めることも可能です。

import hashlib
digest = hashlib.sha256()
with open('INPUT.txt', 'rb') as f:
    while b := f.read(1024):
        digest.update(b)
print(digest.hexdigest())
#=> 6f67ea379608add8b4f3c0a3c95c0e70ab2752405de7c69c152faabd5870305e

環境情報

docker run -it --rm -v .:/work -w /work python:3.12 python3 main.py
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?