複数のダイジェスト(md5、sha256)を同時に計算しますか?

複数のダイジェスト(md5、sha256)を同時に計算しますか?

ディスクI / Oと利用可能なRAMがボト​​ルネック(CPU時間は制限ではありません)であると仮定すると、複数のメッセージダイジェストを同時に計算できるツールはありますか?

私は特に大容量ファイル(GB単位)のMD-5およびSHA-256ダイジェストを並列に計算することに興味があります。私はこれを試しましたが、openssl dgst -sha256 -md5ハッシュ値を計算するために1つのアルゴリズムしか使用しません。

予想される動作の疑似コード:

for each block:
    for each algorithm:
        hash_state[algorithm].update(block)
for each algorithm:
    print algorithm, hash_state[algorithm].final_hash()

ベストアンサー1

次から見るpee(" tee standard input to pipes")moreutils。これは基本的にMarcoのteeコマンドと同じですが、入力するのは少し簡単です。

$ echo foo | pee md5sum sha256sum
d3b07384d113edec49eaa6238ad5ff00  -
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c  -
$ pee md5sum sha256sum <foo.iso
f109ffd6612e36e0fc1597eda65e9cf0  -
469a38cb785f8d47a0f85f968feff0be1d6f9398e353496ff7aa9055725bc63e  -

おすすめ記事