Quel est le moyen le plus efficace d'identifier un fichier binaire? Je voudrais extraire une sorte de signature d'un fichier binaire et l'utiliser pour le comparer avec d'autres. L'approche par force brute consisterait à utiliser le fichier entier en tant que signature, ce qui prendrait trop de temps et trop de mémoire. Je suis à la recherche d'une approche plus intelligente à ce problème, et je suis prêt à sacrifier un peu de précision (mais pas trop, ey) pour la performance.Comment identifier efficacement un fichier binaire
(alors que le code-exemples Java sont préférés, les réponses de langue agnostique sont encouragés)
Modifier: Numérisation le fichier entier pour créer un hachage présente l'inconvénient que plus le fichier, plus il faut. Puisque le hachage ne serait pas unique de toute façon, je me demandais s'il y avait une approche plus efficace (c.-à-d. Un hachage à partir d'un échantillonnage uniformément réparti des octets).
"Puisque le hachage ne serait pas unique de toute façon" - que voulez-vous dire? Il est trivial que le hachage ne puisse pas être unique dans tous les fichiers, mais c'est aussi le cas pour une fonction de hachage cryptographiquement sécurisée, vous ne rencontrerez jamais de collision. –
Je veux dire que peut-être lire le fichier entier n'est pas nécessaire si le résultat ne sera pas unique de toute façon. Je suppose qu'il doit y avoir une certaine redondance dans la lecture d'un fichier de 60 Mo pour produire un hachage de quelques octets. – hpique