peschmae
15-11-2005, 17:50
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:
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
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:
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:
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
Dabei gibts (neben anderem was ich gefixt habe - vor allem Verwendung alter Header) folgenden Fehler:
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
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:
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:
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