Une lacune dans les systèmes de fichiers
La majorité des utilisateurs l’ignore, mais dans un ordinateur, un smartphone ou une tablette (en gros dans tout système informatique), les fichiers sont stockés selon un système appelé filesystem (ou système de fichiers ; ok les mecs ne se sont pas cassés la tête pour le nom).
En quoi cela consiste ? En fait, cela sert à créer les dossiers, les droits d’accès au fichiers (lecture/écriture), et même les dates de création et de modification, où il est enregistré physiquement, sa taille, et à nommer lesdits fichiers ! Eh oui, le nom et la date sont détachés du document en lui-même… A la manière d’un sommaire qui dit « tel chapitre est à telle page ».
Mais voilà mon soucy : dans les services de synchronisation de documents, les logiciels doivent se baser sur des informations peu fiables, comme la date, qui peut varier pour des raisons diverses et variées. Or, il existe un moyen simple pour savoir si un fichier a été modifié : sa signature électronique !
Badabim, badaboum, tsoin tsoin !
La signature électronique, aussi appelée hash, consiste à générer un numéro basé sur le contenu du fichier, de longueur fixe. Plusieurs algorithmes existent, selon leur fiabilité et rapidité (MD5, SHA1…). Un code de 8 chiffres hexadécimaux (entre 00000000 et FFFFFFFF) pourrait faire un bon compromis.
Intérêt : 2 fichiers de même taille (en octets) et de même signature sont 100% identiques. On considère que la probabilité que 2 fichiers différents de même taille ayant la même signature est trop faible pour être prise en compte (1 / 4.294.967.296).
Je vais transmettre ma demande aux développeurs
(Microsoft pour le NTFS, Apple pour le HFS+ et Linux pour l’ext4).