質問: ファイルの同一を確認するのにファイルのハッシュ値を求めて使おうと思っています。 Linuxであれば ``` md5sum FILE ``` でハッシュ値を求められますが、大きなファイルになるとハッシュ値を求めるにも時間がかかります。 ハードウェア処理などで高速化する方法などありませんでしょうか? 目的はハッシュ値の高速化なので手法は問いません。OSはCentOS7を想定しています。 ご存知の方、ご教示お願いします。
回答: GPUやFPGA、専用ASICを用いてハッシュ計算を高速化する手法はありますが、コマンド一発でインストールして使えるようなものではありません。 ファイルの同一を確認するのであれば、ハッシュ値を用いるのは必ずしも得策ではありません。ファイルそのものを比較すれば、ファイルサイズや一部のブロックを読むだけで「同一でない」と確認できる可能性がありますが、ハッシュ値の比較では必ずファイル全体を読み込む必要があります。 ファイルの比較についてハッシュ値を用いるのが有効なのは、 * 比較対象のファイルが手元にない * 多数のファイルを相互比較するなど、繰り返し処理が必要 のような場合、つまり「その場で計算するハッシュ値は多くても1つで、あとはあらかじめ計算済みのハッシュ値と比較する」ような場合です。このような使い方であればハッシュ値の計算量はさほど問題にならないはずです。