deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 2016
-
22 nov. 2006 à 19:39
querb
Messages postés1Date d'inscriptionmercredi 8 avril 2015StatutMembreDernière intervention 8 avril 2015
-
8 avril 2015 à 20:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Les .xlsx et les .docx ne sont ni plus ni moins que des sortes "d'archives" de fichiers .xml. Pas étonnant que le programme plante.
Sinon, j'ai essayé de le compiler sous linux, et le programme marche très bien. Par contre, un Makefile aurait été grandement apprécié (je met le mien à la fin du post)
Apparemment, il semble fonctionner correctement, mais peut-on l'utiliser dans un projet, et sous quelle licence ?
=====================
Makefile (C'est le Makefile.win modifié et simplifié, je n'ai pas vérifié si cette version fonctionne dans TOUS les cas.) :
# Project: MD5FileHash
# Makefile created by Dev-C++ 4.9.9.2
# Modified for Linux use
CPP = g++
CC = gcc
OBJ = obj/main.o obj/md5.o
LINKOBJ = obj/main.o obj/md5.o
LIBS = -Lm
BIN = bin/MD5FileHash
le code ça marche avec l'extension .xls .docx ?? le programme se plante qd j'utilise ce type de fichier
damien174
Messages postés78Date d'inscriptionjeudi 4 janvier 2001StatutMembreDernière intervention 2 mars 2012 12 sept. 2011 à 14:55
Merci ca marche niquel en C sous linux sans retouche :)
merci
xtremejames183
Messages postés32Date d'inscriptionvendredi 26 mai 2006StatutMembreDernière intervention14 avril 2009 19 sept. 2010 à 15:54
Salut, en ce qui concerne les gros fichiers tu devrais utilise les appelles systémes de ton OS au lieu de passer par la libC (fread,fopen,...).
En gros si tu es sous windows utilise ReadFile()/WriteFile() si tu es sous UNIX utilise read()/write.
Trés bien! mais quand je veux le MD5 d'un "gros" fichier (300mo) le programme plante....
As tu une idée pour améliorer ton programme....
Merci
nutz007
Messages postés3Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention18 octobre 2007 18 oct. 2007 à 13:10
Hello
Ce source a l'air très bien fait. Cependant, qqch me bloque ... Ne faudrait-il pas faire un "delete data" après le calcul du md5 ??
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 22 nov. 2006 à 19:57
Houlalalaaa cava pas moi c'est temps si. c'est bon j'ai capté lol md5_byte_t sur 8bits * 16 = 128 bits, et la boucle sert à remetre le tout en hexa . lol
xtremejames183
Messages postés32Date d'inscriptionvendredi 26 mai 2006StatutMembreDernière intervention14 avril 2009 22 nov. 2006 à 19:56
la boucle sert a imprimer le Hash dans la variable HEX_DATA c'la ou le hash est generer en hexa.
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 22 nov. 2006 à 19:39
Utile, mais manque de commentaire. :D
J'ai 2-3 questions :
- A quoi sert c'est variable de 16 bytes ? md5_byte_t digest[16]; ? que contient t-elle apres md5_append ? car le MD5 étant sur 128 bits (32 en hexa) je me demande ce qu'elle contient, surtout que c'est dedans que ce trouve le résultat :D
- Pourquoi cette boucle ? :
int i=0;
for(i;i<16;i++){
snprintf(HEX_DATA+i*2,sizeof(HEX_DATA),"%02x",digest[i]);
}
Modifié par querb le 8/04/2015 à 20:08
Sinon, j'ai essayé de le compiler sous linux, et le programme marche très bien. Par contre, un Makefile aurait été grandement apprécié (je met le mien à la fin du post)
Apparemment, il semble fonctionner correctement, mais peut-on l'utiliser dans un projet, et sous quelle licence ?
=====================
Makefile (C'est le Makefile.win modifié et simplifié, je n'ai pas vérifié si cette version fonctionne dans TOUS les cas.) :
# Project: MD5FileHash
# Makefile created by Dev-C++ 4.9.9.2
# Modified for Linux use
CPP = g++
CC = gcc
OBJ = obj/main.o obj/md5.o
LINKOBJ = obj/main.o obj/md5.o
LIBS = -Lm
BIN = bin/MD5FileHash
all: $(BIN)
$(BIN): $(OBJ)
$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
obj/main.o: main.c
$(CC) -c main.c -o obj/main.o $(CFLAGS)
obj/md5.o: md5.c
$(CC) -c md5.c -o obj/md5.o $(CFLAGS)
7 janv. 2015 à 15:45
12 sept. 2011 à 14:55
merci
19 sept. 2010 à 15:54
En gros si tu es sous windows utilise ReadFile()/WriteFile() si tu es sous UNIX utilise read()/write.
18 mars 2010 à 10:30
As tu une idée pour améliorer ton programme....
Merci
18 oct. 2007 à 13:10
Ce source a l'air très bien fait. Cependant, qqch me bloque ... Ne faudrait-il pas faire un "delete data" après le calcul du md5 ??
22 nov. 2006 à 19:57
22 nov. 2006 à 19:56
Tu trouveras ton bonheur et tes questions sur le fonctionnemnt de Message Digest 5
la boucle sert a imprimer le Hash dans la variable HEX_DATA c'la ou le hash est generer en hexa.
22 nov. 2006 à 19:39
J'ai 2-3 questions :
- A quoi sert c'est variable de 16 bytes ? md5_byte_t digest[16]; ? que contient t-elle apres md5_append ? car le MD5 étant sur 128 bits (32 en hexa) je me demande ce qu'elle contient, surtout que c'est dedans que ce trouve le résultat :D
- Pourquoi cette boucle ? :
int i=0;
for(i;i<16;i++){
snprintf(HEX_DATA+i*2,sizeof(HEX_DATA),"%02x",digest[i]);
}