Intégrité & discontinuités

Empreintes MD5 & CRC32

Une empreinte est une étiquette calculée à partir de tous les octets du fichier. Elle permet de reconnaître une copie identique même si son nom ou son dossier change.

Comment lire le résultat

Le MD5 du fichier inclut les tags et images : une retouche les modifie donc aussi. La signature audio FLAC est différente. Ces empreintes ne reconnaissent pas la même chanson après réencodage.

Pour aller plus loinMéthode, limites, vérifications et sources

FlacCompagnon calcule un MD5 et un CRC32 sur tous les octets du fichier. Ils permettent de comparer des copies ou d’identifier un fichier inchangé après un renommage ou un déplacement. Le chemin ne participe pas au calcul.

Ce qui est inclus#

Tout le fichier contribue : audio compressé, en-têtes, tags, images et bourrage. Modifier un titre ou une pochette peut changer les empreintes sans modifier le son décodé. Réencoder le même son peut également les changer.

Le MD5 audio FLAC STREAMINFO est différent : il porte sur les échantillons audio non encodés. Il survit normalement aux modifications de tags et au réencodage sans perte d’un même flux d’échantillons. Une signature absente ou non vérifiée ne doit pas être considérée comme une identité audio vérifiée.

IdentifiantSurvit à un déplacement simpleSurvit aux modifications de tagsSignification
MD5 / CRC32 du fichierOuiGénéralement nonOctets du fichier complet
MD5 audio FLAC vérifiéOuiOuiOctets des échantillons audio décodés
Identifiant MusicBrainzSi les tags sont conservésSi l’identifiant est conservéEntité du catalogue, pas identité des octets

Retrouver un fichier depuis un rapport#

Le JSON conserve les chemins et les empreintes. Un logiciel peut rechercher les empreintes correspondantes lorsque les chemins ont changé, mais elles ne localisent pas automatiquement le fichier. Des copies identiques partagent les mêmes empreintes ; plusieurs correspondances sont possibles. Il faut conserver cette ambiguïté plutôt que choisir un chemin arbitraire.

Les identifiants MusicBrainz complètent ces mesures lorsqu’ils sont fournis par le catalogue ou les tags : ils décrivent des enregistrements ou des éditions, et peuvent être partagés par des fichiers dont le mastering, l’encodage ou le contenu diffèrent. Ils ne remplacent pas une comparaison des octets.

Limites#

MD5 et CRC32 sont des sommes de contrôle pratiques pour les changements accidentels, pas des preuves sécurisées d’authenticité. Des collisions sont possibles, particulièrement avec CRC32 ; MD5 ne résiste pas aux collisions délibérées. Ce ne sont pas des empreintes perceptuelles : elles ne reconnaissent pas une chanson entre plusieurs encodages ou montages.

Vérifier manuellement#

Sur macOS :

md5 "track.flac"

Sur Linux :

md5sum "track.flac"

Dans PowerShell sur Windows :

Get-FileHash "track.flac" -Algorithm MD5

Comparez la valeur hexadécimale avec le MD5 du fichier dans le rapport, sans tenir compte de la casse. Copiez le fichier dans un autre dossier : le résultat doit rester identique. Modifiez ensuite un tag sur la copie : le son peut rester identique alors que le MD5 du fichier change.

Vous intégrez le moteur dans un logiciel ?

Consulter l’API Rust dans Rustdoc ↗