Ich versuche gerade die Md5sum Impelementierung von http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html zu kompilieren (Datei kann man nicht dort runterladen, findent man aber per Google).
Dabei gibts (neben anderem was ich gefixt habe - vor allem Verwendung alter Header) folgenden Fehler:
Code:
md5.cc: In member function »void MD5::update(std::ifstream&)«:
md5.cc:164: Fehler: ungültige Umwandlung von »unsigned char*« in »char*«
md5.cc:164: Fehler: Argument 1 von »std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::read(_CharT*, std::streamsize) [with _CharT = char, _Traits = std::char_traits<char>]« wird initialisiert
make: *** [md5.o] Fehler 1
Code:
void MD5::update(ifstream& stream){
unsigned char buffer[1024];
int len;
while (stream.good()){
stream.read(buffer, 1024); // <-- hier ist der Fehler!
len=stream.gcount();
update(buffer, len);
}
}
wenn ich nun annehme dass der dort ein nicht-unsigned char[] möchte gibts:
Code:
md5.cc: In member function »void MD5::update(std::ifstream&)«:
md5.cc:166: Fehler: ungültige Umwandlung von »char*« in »unsigned char*«
md5.cc:166: Fehler: Argument 1 von »void MD5::update(unsigned char*, unsigned int)« wird initialisiert
make: *** [md5.o] Fehler 1
das einzige was geht ist:
Code:
unsigned char buffer[1024];
...
stream.read((char*)buffer, 1024);
Kann mir das einer erklären?
Sollte jemand sonst eine Alternative haben an C++-Impelementiertem bzw. nutzbarem funktionierenden Checksummenalgorithmus ist das btw. auch willkommen.
Allerdings sollte das ganze möglichst klein sein, also nichts à a la libcrypto++ - das ist mir zu umfangreich.
MfG Peschmä
P.S. und ja ich weiss das Md5sum scheinbar nicht sicher ist, aber ich benötige das nicht für Kryptographie oder so
Lesezeichen