String in Md5-String umwandeln
-
Hi, ich fange grade mit C++ an und probiere soviel wie möglich zu programmieren.
Nun habe ich das Problem das ich einen String habe und gerne daraus den Md5-hash erechnen möchte.
Nun musste ich leider festellen das beim standartumfang der stl(soweit ich das verstanden habe) diese funktion nciht vorhanden ist.
Ich hab schon recht viel gegoogelt, doch jeden code den ich bisjetzthin gefunden habe, ist recht kompilziert und meist in C geschrieben(und ich habe mal gehört man soll C und C++ nicht mischen).
Also wenn mir irgentwer helfen könnte währe ich sehr dankbar(am besten mit nem kleinen Sample wenn möglich).
Zur Information ich benutze den GNU-Comiler und dies unter Ubuntu, als Entwicklungswerkzeug benutze ich Eclipse mit C++ Plugin.
Ich hoffe die Informationen reichen aus.
MfG goodvirus
-
Das kommt drauf an. Wenn man was fertiges in C hat und es benutzen kann ohne das Rad neu erfinden zu müssen kann es schon Sinn machen. Ansonsten kann man auch einen Wrapper bauen oder bei einem kleinen Code diesen einfach umschreiben.
Es gibt sehr viele Implementierungen in C und wenn man so komplexe Sachen nicht für C++ findet, würde ich eher auf die C-Funktion zurückgreifen, als es neu (und evtl. falsch) neu zu schreiben. Aber guck mal hier, da gibts scheinbar C++-Source:
http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html
-
@goodvirus
Wenn du C Funktionen in C++ Code einbaust, dann am besten die Funktionen mit folgendem Konstrukt umhüllen:extern "C" { void foo(float); int bar(void); };MfG
GPC
-
#include <openssl.h>unter linux. da findest du alles was mit hash-, signatur- und verschlüsselungsfkt zu tun hat.
-
Ich habe so etwas mal geschrieben und veröffentlicht.
In meinen cxxtools findest Du eine Klasse cxxtools::Md5stream, die einen MD5-hash errechnet. Er ist von std::ostream abgeleitet und berechnet den Hash-Wert aufgrund der empfangenen Daten. Und das geht so:
cxxtools::Md5stream m; m << "Hallo Welt"; std::cout << m.getHexDigest() << std::endl;Cxxtools läuft unter Linux und gibt es unter http://www.tntnet.org/.
Tntnet
-
MD5 solltest du aber nicht für kryptographische Zwecke verwenden, es wurde kompromitiert.