バイナリ ファイルを識別する最も効率的な方法は何ですか? バイナリ ファイルからある種の署名を抽出し、それを使用して他の署名と比較したいと考えています。
ブルート フォース アプローチは、ファイル全体を署名として使用することです。私はこの問題に対するよりスマートなアプローチを探しており、パフォーマンスのために少し精度を犠牲にしても構わないと思っています。
(Java コード例が優先されますが、言語にとらわれない回答が推奨されます)
編集:ファイル全体をスキャンしてハッシュを作成すると、ファイルが大きくなるほど時間がかかるという欠点があります。とにかくハッシュは一意ではないため、より効率的なアプローチがあるかどうか疑問に思っていました(つまり、バイトの均等に分散されたサンプリングからのハッシュ)。