Python 2 では、次のコマンドを実行するだけで文字列をハッシュできました。
someText = "a"
hashlib.sha256(someText).hexdigest()
しかし、Python 3 では、エンコードする必要があります。
someText = "a".encode("ascii")
hashlib.sha256(someText).hexdigest()
しかし、ファイルでこれを試すと:
f = open(fin, "r")
sha = hashlib.sha256()
while True:
data = f.read(2 ** 20).encode("ascii")
if not data:
break
sha.update(data)
f.close()
私は多くのファイルでこれを取得します:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe1 in position 8: invalid continuation byte
これは、おそらく ASCII に変換できないバイナリ ファイルであるためだと思います。
この問題なくファイルをエンコードするにはどうすればよいですか?