Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

YOYOMD5 - CALCUL ET AFFICHAGE DE LA CLEF MD5 D'UN FICHIER


Information sur la source

Catégorie :Fichiers / Disque Classé sous : yoyomd5, yoyo, md5, clef, hachage Niveau : Débutant Date de création : 11/08/2006 Date de mise à jour : 30/08/2006 10:06:45 Vu / téléchargé: 5 161 / 521

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ce petit programme vous permet de choisir un fichier, via une boîte de dialogue Windows ou par drag & drop sur la fenêtre, puis de calculer automatiquement sa clef MD5.
Je sais que ce type de programme n'est pas le premier du genre, je n'attends donc aucun commentaire particulier.
Cela dit, si vous repérez des erreurs dans le programme, n'hésitez pas à m'en toucher un mot.
D'avance merci.
 

Conclusion

Pour tester le programme, renommer le fichier YoyoMD5.ex_ en *.exe.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

13 août 2006 14:59:48 :
Corrections en rapports avec les commentaires.
26 août 2006 22:27:38 :
Style XP + drag & drop
30 août 2006 10:06:45 :
Rajout de l'exe à renommer de YoyoMD5.ex_ à YoyoMD5.exe

Commentaires et avis

signaler à un administrateur
Commentaire de BruNews le 11/08/2006 10:06:44 administrateur CS

strncpy(PIcone.szTip, Tip, strlen(Tip));
Quel intérêt d'utiliser la version 'n' par rapport à strcpy si tu n'as pas de controle de longueur ??? Ici tu ne fais que parcourir la chaine 2 fois (strlen) au lieu d'1.

signaler à un administrateur
Commentaire de vecchio56 le 11/08/2006 10:29:16 administrateur CS

On dirait que c'est une manie
http://www.cppfrance.com/infomsg_CONVERTIR-CHAR-CHAR_794339.aspx
Ca n'a vraiment aucun intérêt de faire ca
Pour empêcher un débordement de PIcone.szTip, il faut limiter la copie à la taille dispo dans PIcone.szTip et pas à la longueur de Tip

signaler à un administrateur
Commentaire de Joky le 11/08/2006 10:37:36

char szCurDir[MAX_PATH];
char *c;

c = szCurDir + GetCurrentDirectory(MAX_PATH, szCurDir);

if(*(c-1) != '\\')
  *c++ = '\\';
*c = 0;

Beaucoup plus efficace que des appels à strlen + strcat

signaler à un administrateur
Commentaire de BruNews le 11/08/2006 10:42:24 administrateur CS

ah oui il y a aussi le memset 0 suivi du strcat que j'ai oublié de relever, c'est du amuse cpu.

Se méfier de l'utilisation de sizeof, si le pointeur est reçu en param de fonction, sizeof = taille pointeur et rien d'autre. Il vaut mieux se faire un jeu de constantes en rapport à ce qu'on déclare en buffer.

signaler à un administrateur
Commentaire de vecchio56 le 11/08/2006 10:42:34 administrateur CS

Ton *c = 0 peut être mis dans le if, non?

GetCurrentDirectory:
Therefore, the size returned by the function may be two characters less than the size of the specified string, not including the terminating null character

Je sais pas si ca vous est déja arrivé, mais dans ce cas ca marcherait pas

signaler à un administrateur
Commentaire de Joky le 11/08/2006 10:45:35

Ah et il donne la chaine en entier quand il a envie seulement ??? :)
Comment ça se fait qu'elle fait ça cette fonction ?

Et donc oui le *c=0 dans le if... :)

signaler à un administrateur
Commentaire de yoyo269 le 11/08/2006 11:25:39

Houla déjà tout ça comme remarques ! lol
En plus par la crème de cppfrance.
J'avais déjà lu quelque part que strcpy() n'était pas des plus fiables. Et en plus, je viens de lire que strcat() serait de la même trempe.
Je profite de cette occasion pour vous demandez si tout ceci est vrai ? Si oui, comment avoir une méthode fiable pour les remplacer ?(les pointeurs ?)
Merci Joky pour ton petit bout de code utilisant les pointeurs. Je m'y mets petit à petit, mais je suis encore un peu (voire beaucoup) "handicapé du pointeur" comme dirait BruNews.

Je vais essayer de corriger tout ça au plus vite.

Merci beaucoup pour votre aide.

YOYO, @+.

signaler à un administrateur
Commentaire de vecchio56 le 11/08/2006 11:37:06 administrateur CS

Ben strcpy est très fiable, puisqu'elle fait ce qu'on lui demande. Evidemment faut toujours savoir combien de place il te reste au minimum dans ton buffer. Moi je continue à l'utiliser sans état d'âme

signaler à un administrateur
Commentaire de yoyo269 le 11/08/2006 11:44:33

Ok, donc si j'ai bien compris, du moment que l'on assez de mémoire allouée pour faire un strcpy, on a aucun souci?

YOYO, @+.

signaler à un administrateur
Commentaire de BruNews le 11/08/2006 11:46:34 administrateur CS

strncpy (ou variante perso) est quasi obligatoire quand tu reçois un param externe ou autres cas de ce genre. Si ton prog ne prend que des chaines dont la longueur est déjà controlée par le biais de la limitation dans un EDIT, ça n'a plus aucun intérêt.

signaler à un administrateur
Commentaire de steve_clamage le 11/08/2006 18:47:56

Pourquoi il faut se mefier de sizeof ? Il fait des coup bas ?! sizeof retourne la taille d'un pointeur quand on lui passe un pointeur et quand on lui passe un tableau il retourne la taille d'un tableau, je vois rien d'anormal ?

signaler à un administrateur
Commentaire de BruNews le 11/08/2006 19:24:17 administrateur CS

void func(char *buf, char *psrc)
{
  strcpy(buf, psrc, sizeof(buf));
}

int taille(int *tab)
{
  return sizeof(tab);
}

4 à tout coup sur system 32 bits.
Si tableau n'est pas dans la portée du sizeof, on obtient la taille du pointeur selon le systeme mais assurément pas la taille du tableau.

signaler à un administrateur
Commentaire de steve_clamage le 11/08/2006 19:36:22

Oui mais la tab et buf sont des pointeurs, pas des tableaux.
C'est exactement la meme chose si je fais

int tab[10];
int * p = tab;

sizeof tab == 10 * sizeof(int)
et
sizeof p == sizeof(void *)

Dans une fonction on ne peut que recevoir un pointeur contenant l'adresse du tableau, puisqu'il est impossible de passer un tableau à une fonction. Ce n'est pas la faute à sizeof, il faut juste avoir saisie la différence entre un tableau et un pointeur et comment on procède pour passer un tableau à une fonction.

signaler à un administrateur
Commentaire de BruNews le 11/08/2006 19:41:19 administrateur CS

ben oui il faut avoir saisi et bien pour cela qu'il ne faut pas hésiter à répéter ce genre de chose, on voit si souvent l'erreur sur cppfrance.

signaler à un administrateur
Commentaire de steve_clamage le 11/08/2006 19:51:43

A quand une faq cppfrance ? Ca pourrait alleger le forum vu le nombre de questions récurrentes ?

signaler à un administrateur
Commentaire de yoyo269 le 13/08/2006 12:18:51

Juste une petite remarque par rapport au premier message de vecchio56.
Le débordement est empêché d'une manière détournée, c'est-à-dire que la chaîne de caractères qui peut être copiée PIcone.szTip fait au maximum 63 de long (0 de fin exclus). Et comme szTip peut contenir au max 64 caractères, c'est nickel.
Cela n'empêche pas que BruNews a raison sur le fait que la version n de strcpy est dans ce cas inutile.

YOYO, @+.

signaler à un administrateur
Commentaire de vecchio56 le 13/08/2006 12:39:25 administrateur CS

Oui et ce n'est jamais utile de l'utiliser comme ca car
strncpy(PIcone.szTip, Tip, strlen(Tip));
est équivalent (sémantiquement, pas en terme de vitesse) à
strcpy(PIcone.szTip, Tip);

Pour éviter un débordement, il faut faire quelque chose du genre
strncpy(PIcone.szTip, Tip, MAX_SIZE);
ou MAX_SIZE est la taille disponible dans le buffer PIcone.szTip. Ca ne dépend pas de la longueur de Tip

signaler à un administrateur
Commentaire de yoyo269 le 13/08/2006 13:02:32

Ok ! Donc je pense avoir tout bien compris sur ce que vous m'avez dit et je dois dire que ça m'a été très utile.
J'espère que ça sera de même pour beaucoup d'autres.

En tous cas merci à tous pour vos explications et éclaircissements.
P.S: je m'attaque à la mise à jour de YoyoMD5.

YOYO, @+.

signaler à un administrateur
Commentaire de vecchio56 le 19/08/2006 20:41:39 administrateur CS

Je reviens vite fait au problème de départ (strncpy(PIcone.szTip, Tip, strlen(Tip));)
Non seulement c'est plus lent (un strlen inutile), mais en plus c'est faux, car le 0 terminal n'est pas copié
C'était juste pour préciser, je viens de m'en rendre compte

signaler à un administrateur
Commentaire de Matt67 le 29/12/2006 21:25:23

Bonsoir,

Je viens de tomber sur ton code et j'étais très intéressé donc hop, je download ton projet et je l'ouvre et que vois-je, moult lignes de codes pour gérer l'interface graphique (fenêtre, bouton, etc...) et un algo récupéré sur le net. A part pour apprendre à faire une interface graphique en Win32, je ne vois pas trop l'interet de ton code...
Je préfère à la limite le code http://www.cppfrance.com/codes/MD5_10868.aspx qui, au moins, n'écrit 350 000 lignes de code pour gérer l'interface, il va droit au but.

Matt...

signaler à un administrateur
Commentaire de yoyo269 le 29/12/2006 21:34:52

Bonjour Matt67,

pourtant il me semblait que le titre de la source était suffisamment clair.
Ca calcule la clé MD5 et ça l'affiche, tout simplement.
Après si la programmation en API vous dérange un peu à cause du nombre de ligne, j'en suis désolé, mais je n'y peux pas grand chose. Même si bien sûr, il y forcément moyen de réduire la taille de mon code, j'en suis convaincu.

YOYO, @+.

signaler à un administrateur
Commentaire de Matt67 le 29/12/2006 22:07:04

Bonsoir,

[../..] Ca calcule la clé MD5 et ça l'affiche, tout simplement. [../..]

Je pense qu'on peut faire plus simple :-), pas au point de vu de l'algo mais sur la façon de l'utiliser.

Matt...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

fonction de hachage md5 [ par iarachid70 ] bonjour; j'aimerai s'avoir les étapes en détail à suivre dés le téléchargement pour executer le code source de de fonction de hachage cryptographiq fonction de hachage md5 [ par iarachid70 ] Salut; j'aimerai s'avoir les étapes en détail à suivre dés le téléchargement pour executer le code source de de fonction de hachage cryptographique desoin d'aide cryptage Hachage MD5? [ par pic22 ] Bonjour   <p class="MsoNormal" sty Pilotage Clef Bluetooth [ par Arzad69 ] Bonjour à tous,Tout d'abord je tiens à dire que je suis débutant, c'est pourquoi mon problème va peut être paraitre obsolète pour la plupart d'entre v Clef d'activation [ par Gadji ] Bonjour, J'aimerai limiter l'utilisation de mon programme à une personne par clé mais je ne sais pas comment faire.En fait, une clef serait associé à remplir une table de hachage [ par cyrina84 ] Bonjourj'ai un probleme :j'ai une table de hachage  voial sa structure :typedef struct L2{     int freq;     mots *m;     Coordonnees *c;      struct inserer un mot dans une table de hachage [ par cyrina84 ] bonjour j'ai un souci dans mon code, jai fait une fonction qui lit les mots à partir d'un texte , les stocker dans une table de hachage.voila la struc md5 etc.... [ par xlsd ] Salut, est il possible (oui forcement) d'utiliser md5 en C/C++ je n'arrive pas a trouvé les fonctions etc..merci :) fonction de hachage pour compression Lzh [ par cambouis ] Bonjour, je cherche a mettre en application l'algo Lzh. Connaitriez-vous une fonction de hachage qui me permette d'accélérer les recherches dans le di creer une table de hachage avec des elements d'un fichier texte [ par nedri ] bonjour!j'ai un projet a faire en C mais je ne suis pas très forte.j'ai realisé un traitement d'un fichier source en C d'ou je tire tous les identific


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,874 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.