md5 und c++

Shooter2k

Erfahrenes Mitglied
Hallo liebes Forum,
kann mir jemand sagen was ich benötige, um md5 in c++ zu benutzen? Ist der md5Hash der selbe wie beim PHP MD5?

Ich arbeite mit MS Visual Studio C++.

Vielen Dank
gruß
 
Hi sheel,
danke für deine Antwort. Habe mir die md5.c datei runtergeladen. Kannst du mir vielleicht noch kurz sagen was ich mit der Datei machen soll? Include ich sie einfach?

Danke
 
Nicht ganz.
In der Datei sind eigentlich drei, Dateien, abgegrenzt durch die großen Kommentarblöcke.
md5.h, md5.c und eine Datei mit Aufrufbeispielen für Strings, Dateien etc.

Trenn das in 3 Dateien auf.
Die erste includen, die zweite mitkompilieren, die dritte nur zum Anschauen.
 
Hmm ;-( ich kriege das irgendwie nicht hin. Ich arbeite mit MS Visual Studio C++ 2010. Es gibt eine md5lib.dll von der ständig die Rede ist. Ich frage mich nur wie ich die DLL einbinde. Leider habe ich nicht ganz verstanden wie ich die zweite Datei mitkompiliere bei MSVC C++.

gruß
 
Hab da nichts gesehen, was eine DLL nötig macht.
Du fügst die h- und c-Datei einfach zum Projekt dazu
und schreibst in den anderen C-Dateien ein #include<md5.h>.
 
Genau das habe ich gemacht. Nun erhalten ich folgenden Fehler:

Fehler 1 error C1853: Die vorkompilierte Header-Datei "Debug\md5.pch" stammt von einer früheren Version des Compilers, oder der vorkompilierte Header stammt von C++, und Sie verwenden Ihn von C (oder umgekehrt)
 
Danke dir. Jetzt erhalte ich keine Fehler mehr. Leider sehe ich bei der Beispieldatei nicht ganz durch. Ich möchte einfach nur einen string in md5 konvertieren. Kannst du das ein wenig vereinfachen und mir ein Beispiel geben? Vielen Dank nochmals
 
C++:
void string2md5 (char *out, char *in)
{
	MD5_CTX mdContext;
	int i;
	MD5Init(&mdContext);
	MD5Update(&mdContext, in, strlen(in));
	MD5Final(&mdContext);
	for (int i = 0; i < 16; i++)
	{
		out[(i<<1)] = (char)(mdContext.digest[i] / 16);
		out[(i<<1) + 1] = (char)(mdContext.digest[i] % 16);
		if(out[(i<<1)] < 10) out[(i<<1)] += '0';
		else out[(i<<1)] += 'a' - 10;
		if(out[(i<<1) + 1] < 10) out[(i<<1) + 1] += '0';
		else out[(i<<1) + 1] += 'a' - 10;
	}
	out[32] = '\0';
}

Aufruf:
C++:
char einagbe[1024];
gets(eingabe);
...
char md5[33];
strin2md5(md5, eingabe);

puts(md5);
Ungetestet.

Gruß
 
Zurück