[Ex] Hash compare
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- matwachich
- Membre émérite
- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
[Ex] Hash compare
Voila un petit script que j'ai fait à cause d'une gravure qui a planté lors de la vérification. Je me suis retrouvé avec un DVD gravé à 100% mais dont la fiabilité n'était pas sure, et comme les données était sensibles et que je devait les supprimer de mon PC pour libérer de l'espace, j'ai fait ce petit truc tout simple qui compare les Hash de 2 fichiers:
Il suffit de faire glisser les 2 fichiers à comparer sur la fenêtre et la vérification se lance, un appui sur Escape réinitialise la liste des 2 fichiers à comparer si on en a fait glisser qu'un et qu'on se rend compte que c'est pas le bon.
PS: juste une question: j'ai utilisé $CALG_MD2 comme algorithme de hachage, est que c'est le plus rapide?
Il suffit de faire glisser les 2 fichiers à comparer sur la fenêtre et la vérification se lance, un appui sur Escape réinitialise la liste des 2 fichiers à comparer si on en a fait glisser qu'un et qu'on se rend compte que c'est pas le bon.
PS: juste une question: j'ai utilisé $CALG_MD2 comme algorithme de hachage, est que c'est le plus rapide?
- Fichiers joints
-
Hash.au3
- (1.91 Kio) Téléchargé 296 fois
-
- Niveau 5
- Messages : 114
- Enregistré le : jeu. 18 nov. 2010 17:57
- Localisation : Vers là bas !
- Status : Hors ligne
Re: [Ex] Hash compare
Le problème c'est: est-ce que cela va marcher avec tout les hash ? enfin ça marche qu'avec les ISO le md2 non ?
► Afficher le texte
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [Ex] Hash compare
Ce n'est surtout pas pour dévaloriser ni minimiser la valeur de ton développement, mais je signale au passage un petit logiciel bien pratique et open source à celles et ceux qui ne le connaîtraient pas encore. Il doit être automatisable par Autoit sans problème, si besoin.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- matwachich
- Membre émérite
- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
Re: [Ex] Hash compare
Je savait qu'il devait exister déjà des logiciels qui font la même chose, mais je voulait un truc HYPER simple pour comparer les fichiers gravés à ceux sur le disque dur, pour être sure qu'il sont bien gravés et que je pouvait les supprimer.
Karen's Hasher est plus complet certes, mais il demande beaucoup plus de cliques pour comparer 2 fichiers que mon petit script.
Et puis je n'ai pas télécharger Karen's mais je ne vois (sur le screen du site) aucune commande pour COMPARER 2 fichiers, seulement pour hacher des fichiers, après je pense qu'il faut les comparer à la main (à l'oeil plutôt!
).
@Colin: On peut hacher n'importe quel fichier avec n'importe quel algorithme.
Karen's Hasher est plus complet certes, mais il demande beaucoup plus de cliques pour comparer 2 fichiers que mon petit script.
Et puis je n'ai pas télécharger Karen's mais je ne vois (sur le screen du site) aucune commande pour COMPARER 2 fichiers, seulement pour hacher des fichiers, après je pense qu'il faut les comparer à la main (à l'oeil plutôt!

@Colin: On peut hacher n'importe quel fichier avec n'importe quel algorithme.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Re: [Ex] Hash compare
J'ai fais quelque tests avec une fonction _sha1 de bas niveau et les resultats sont sans appel:
Pour un fichier de 19 Megas:

Je vais d'ailleurs la mettre ci-dessous après t'avoir donné l'eau à la bouche:
Attention, je n'ai pas dis que Sha1 était plus rapide que MD2, cela dépend de leur implementation uniquement, et ici on utilise une dll de bas niveau ce qui explique la différence enorme de temps 
Si tu arrives à trouver l'OpCode de MD2 tu pourras comparer avec le meme algorithme la difference de temps devrait être equitable.
Pour un fichier de 19 Megas:
La 2eme ligne est du sha1 et les resultats sont 463 fois plus rapides avec ma fonctionC:\Users\tim\Desktop\Usb suite\UDFs\WinAPIEx.au3
> File 1 set.
C:\Users\tim\Desktop\Usb suite\UDFs\WinAPIEx.au3
> File 2 set.
> Starting...
> Hashing File 1...
> Done! (0x534013C96C22B4A29847FC331613152A) in (ms) :5563.91603357579
> Done! (bddb55a52c8529a82f0f5eff74e578551478db2b) in (ms) :12.9753955895685
> Hashing File 2...
> Done! (0x534013C96C22B4A29847FC331613152A) in (ms) :5539.42662850478
> Done! (bddb55a52c8529a82f0f5eff74e578551478db2b) in (ms) :12.9835758871773
> Hash OK!
> =============================================

Je vais d'ailleurs la mettre ci-dessous après t'avoir donné l'eau à la bouche:
► Afficher le texte

Si tu arrives à trouver l'OpCode de MD2 tu pourras comparer avec le meme algorithme la difference de temps devrait être equitable.
- Tlem
- Site Admin
- Messages : 11791
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [Ex] Hash compare
Bien, puisque tout le monde s'y met ...
Alors moi je propose deux choix :
1 - L'utilisation du programme en ligne de commande : MD5.exe
2 - L'utilisation d'un script en 'pure AutoIt'.
Sur le matériel dont je dispose (C2D 1.66 Ghz et disque SSD), la création du hash MD5 d'un fichier de 299 Mo a été généré en :
)
Le programme MD5.exe est disponible ici : http://www.fourmilab.ch/md5/
Et la fonction MD5.au3 provient de ce message : http://www.autoitscript.com/forum/topic ... e__hl__md5
Vous y trouverez d'ailleurs d'autres type de contrôle.
Voilà, il reste plus qu'à faire son choix.

Alors moi je propose deux choix :
1 - L'utilisation du programme en ligne de commande : MD5.exe
2 - L'utilisation d'un script en 'pure AutoIt'.
Sur le matériel dont je dispose (C2D 1.66 Ghz et disque SSD), la création du hash MD5 d'un fichier de 299 Mo a été généré en :
- 1 - Avec MD5.exe en 2134 ms
2 - Pure AutoIt en 5222 ms

Le programme MD5.exe est disponible ici : http://www.fourmilab.ch/md5/
Et la fonction MD5.au3 provient de ce message : http://www.autoitscript.com/forum/topic ... e__hl__md5
Vous y trouverez d'ailleurs d'autres type de contrôle.

Voilà, il reste plus qu'à faire son choix.
- Fichiers joints
-
- Exemple.zip
- (26.34 Kio) Téléchargé 230 fois
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [Ex] Hash compare
Attention à ce mode de comparaison : le premier run sur un fichier risque bien de fonctionner en lisant depuis le disque, alors que le second est garanti de ne lire que le cache Windows et/ou buffer disque. Plutôt que s'embêter à vider les caches (ce qui n'est pas trivial) il faut lancer deux runs de suite sur le même fichier avec un même algo et ne chronométrer que le second run.Attention, je n'ai pas dis que Sha1 était plus rapide que MD2, cela dépend de leur implementation uniquement, et ici on utilise une dll de bas niveau ce qui explique la différence enorme de temps
Si tu arrives à trouver l'OpCode de MD2 tu pourras comparer avec le meme algorithme la difference de temps devrait être equitable.
Sur des fichiers plus gros que les caches (dont on ne connaît pas toujours la taille avec précision et encore moins la méthode d'emploi), il faut même parfois lancer 3, 4 ou plus de fois le même job pour voir les temps se stabiliser à un minimum.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [Ex] Hash compare
En effet, je ne l'ai pas precisé mais c'est bien sur le 2ème essai que j'ai calculé les temps. Je n'ai pas le code sous la main n'etant pas sur ma machine, mais je le deposerai si quelqu'un le veux.
- TommyDDR
- Modérateur
- Messages : 2104
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [Ex] Hash compare
Histoire de mettre mon grain de sel ^^, vous pouvez réduire votre fonction "_out" à une seul ligne :
Le paramètre "1", signifie : "Ajoute à la fin de l'ancien".
Code : Tout sélectionner
Func _out($data)
GUICtrlSetData($out, "> " & $data & @CRLF, 1)
EndFunc
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679