私は、Python の Blake2b の実装 ( https://docs.python.org/3/library/hashlib.html#blake2 ) を次のように使用しています。
>>> from hashlib import blake2b
>>>
>>> hashGenerator = blake2b()
>>> hashFN = hashGenerator.copy()
>>> hashFN.update(b'hi ho! hi ho! off to code I go...')
>>> hashFN.hexdigest()
'bd68fa3ae182a5485ae97bac10913c595358bd761a0ce91a14699907abf49dab29cba198903d80c1c25cc4b73eaa1c00d07a0c1572df04ef232cadddac8c381a'
>>>
>>> hashGenerator = blake2b(digest_size=16)
>>> hashFN = hashGenerator.copy()
>>> hashFN.update(b'hi ho! hi ho! off to code I go...')
>>> hashFN.hexdigest()
'626d821bd03ae3d7a523b04162c08468'
RFC 7693 参照コード (ここからhttps://github.com/BLAKE2/BLAKE2から) に含まれている b2sum プログラムをダウンロードしてコンパイルした後、次のことを観察します (注: LANG=en_US.UTF-8):
MacBookMax:b2sum jlh$ echo "hi ho! hi ho! off to code I go..." | ./b2sum -a blake2b
9b6372572a562989055fdf2837fa086c1ccc7c3c72e3d8bbb1785a0691bdd582499466d1dc6f513a4000f59c74619ca1e631a6a81f03c67a3771702e2d1b0b62 -
MacBookMax:b2sum jlh$ echo "hi ho! hi ho! off to code I go..." | ./b2sum -a blake2b -l 128
602a0bfeab058e6e5c9806a27bed4e72 -
MacBookMax:b2sum jlh$
彼らは同意しません... Pythonスクリプトでさまざまな文字エンコーディングとメソッドパラメーターを試しましたが、同意できません。
複数の言語を使用して同じデータ ストリームを処理しているため、Python 実装を C リファレンス実装と一致させる方法を学ぶことは非常に役立ちます。
助けてくれてありがとう。