Quel est le moyen le plus efficace d'identifier un fichier binaire ? J'aimerais extraire une sorte de signature d'un fichier binaire et l'utiliser pour le comparer à d'autres.
L'approche par force brute consisterait à utiliser l'ensemble du fichier comme signature, ce qui prendrait trop de temps et de mémoire. Je cherche une approche plus intelligente de ce problème, et je suis prêt à sacrifier un peu de précision (mais pas trop, ey) pour la performance.
(les exemples de code Java sont préférables, mais les réponses indépendantes du langage sont encouragées)
Éditer : L'analyse de l'ensemble du fichier pour créer un hachage présente l'inconvénient que plus le fichier est volumineux, plus cela prend de temps. Comme le hash ne serait de toute façon pas unique, je me demandais s'il existait une approche plus efficace (c'est-à-dire un hash à partir d'un échantillonnage d'octets uniformément distribués).