以前に質問があり、読者は代わりに hexdigest() を使用するよう求められました。...そしてそれは機能します。しかし、ダイジェストのフォーマットの構造は何ですか?
次のテスト コード:
import hashlib, base64
f1 = open('foo.jpeg', 'rb')
m = hashlib.sha512()
m.update(f1.read())
sha = m.digest()
print(m.digest())
print(m.hexdigest())
res = base64.b64encode(sha)
print( res)
次の出力が生成されます。
>>>
b'\xf3g\xd1S\xc4#OK\xb8\xb7\x1f~r\xf0\x19JE\xb0d\xb9\x11O\x08\x1c\xc66\x00\xb3i*\x87\x08\x92+\xd3)F\x02\t\x80\xf0m\x8b;\x9c\xcdq\xbd\xb9\x92k\x7f}d\t\xc65\x12\x0b\x17\xf9]5\x97'
f367d153c4234f4bb8b71f7e72f0194a45b064b9114f081cc63600b3692a8708922bd32946020980f06d8b3b9ccd71bdb9926b7f7d6409c635120b17f95d3597
>>>
上記の出力の最初の行にある「#OK」、「~r」、「i*」などの部分の意味がわかりません。これに光を当てていただければ幸いです。もちろん、hexdigest() の出力は完全に理にかなっています。
前の質問: hashlib.sha256 が Python で奇妙な文字を返しました。どうもありがとう。