Diffing

Description

Cela fait (très) longtemps que je n'avais pas laissé de source, aussi ai-je décidé de mettre quelque chose de consistant et d'intéressant.
De toute maniere, c'est a vous de juger.
Bref
Voila donc la source d'un prog de DIFFING
"Mais qu'est ce que le diffing ?" me direz vous
Et bien le diffing est une méthode de protection des données.
Je m'explique: lorsque l'on "diffe" un fichier, celui ci est "haché", via une routine de hachage, technique complexe d'echantillonage de fichier.
En bref, une empreinte de 32 octets est prise sur le fichier, et celle ci ne correspondra qu'a lui et a lui seul (et cela grace a l'anti-collision poussée implémentée dans la routine de hachage MD5 utilisée ici)
Si jamais un seul des bits du fichier est modifié (que le fichier fasse 1 Ko ou 1Go), son empreinte sera différente et on pourra alors dire que le fichier a été altéré (par exemple modifié ou réenregistré).
donc si on veux protéger un repertoire sensible de son disque, il suffit de differ tous les fichiers qu'il contient, et ainsi périodiquement vérifier que ceux ci n'ont pas été modifiés.
prenons l'exemple d'une école: les fichiers de notes sont des données sensibles, donc a protéger. Si on diffe ces derniers, la moindre modification de note sera détectée, et l'élève (con) qui aura juste modifié son bulletin (et pas celui des autres) sera grillé en force.
l'avantage de la prise d'empreinte, vous l'aurez bien deviné, c'est la petite taille du fichier d'empreinte final par rapport au nombre de fichier et quelle que soit leur taille..
Je vous propose donc ici une solution de diffing complete.
A savoir:
-prise d'empreinte de fichier unique
-vérification de l'intégrité d'un fichier unique a partir du fichier d'empreinte et du fichier a vérifier.
-prise d'empreinte d'un répertoire entier (attention, ne gère pas encore les sous-répertoires)
-vérification de l'intégrité d'un repertoire a partir du fichier d'empreinte (nommé a chaque fois "diff.emp") et du répertoire a vérifier.

le diffing d'un répertoire s'effectue de maniere suivante:
-on prend l'empreinte de chaque fichier du repertoire
-on les place toutes dans un fichier d'empreinte unique
QUE L'ON PROTEGE ABSOLUMENT (sinon tout tombe a l'eau, ce fichier NE DOIT PAS POUVOIR ETRE MODIFIE)

lors de la vérification
on prend une nouvelle empreinte de chaque fichier du repertoire
on la compare avec l'ancienne
si elle est différente => fichier non valide
si elle est identique => fichier non altéré

voila
j'ai fait en sorte de faire une interface claire et intuitive

C'est a mon avis (mais surtout contredisez moi si c pas vrai) la seule soltuion de diffing existant en VB
le diffing n'est (helas) pas tres utilisé.
le principe et la réalisation ne sont pas compliqués

L'algo de hachage est une implémentation du MD5 (hachage numérique) qui n'est pas de moi, c'est une DLL dont j'utilise une fonction
le copyright de cet algo est dans ma source et dans un fichier texte dans le zip

Network Working Group R. Rivest
Request for Comments: 1321 MIT Laboratory for Computer Science
and RSA Data Security, Inc.
April 1992

j'utilise d'autre part un OCX tres bien foutu ma foi de recherche de fichiers trouvé sur VBfrance et réalisé par "fou volant13" que je remercie grandement au passage.

Donc si ça vous plait, si vous détestez, si vous comprenez pas ou que j'ai fait une erreur, laissez un message!

PS: vous pouvez toujours tenter de differ tout un disque mais je garantie pas que ça plante pas
PPS: n'oubliez pas de réfferencer la dll et le composant "recherche.ocx"

Conclusion :


Merci d'avance

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.