PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ OpenSSL MD5 Hashsumme bilden?



Leange
28.06.2009, 13:09
Hi ...
ich versuche grad nen MD5 Hash aus nem ganz einfachen string zu machen.
Hab dafür openssl in C:\Dev-Cpp\include\openssl instaliert (automatisch mit dem Update Manager von Dev C++ ).

So jetzt weiss ich aber nicht weiter :(
Mein momentaner Code verursacht nen Linker Error ...


#include <cstdlib>
#include <iostream>
#include <openssl/md5.h> //<- reicht das?

using namespace std;


int main(int argc, char *argv[])
{
unsigned char out[32]; //
unsigned char in[] = "ladidda"; //Da stecken sicher auch einige Fehler ...
MD5(in, sizeof(in),out); //

system("PAUSE");
return EXIT_SUCCESS;
}
[Linker error] undefined reference to `MD5'
ld returned 1 exit status
C:\Dokumente und Einstellungen\******\Desktop\C++\md5\Makefile.win [Build Error] [md5.exe] Error 1


Danke im Vorraus für eure Hilfe! :o
MFG Leange

DoS
28.06.2009, 13:19
Versuch mal ... char out[33]; ....

Bei einem Char Array kommt noch die Escape-Sequenz dazu, daher brauchst du 33.


gruß

Leange
28.06.2009, 13:22
Leider immer noch der gleiche Error ...
ich vermute dass ich noch irgendwas includen muss aber ich hab keine Ahnung was :confused::D

inout
28.06.2009, 13:24
Häng' mal beim Linker den Parameter "-lssl", "-lopenssl" oder "-lcrypto" an.

Und stelle sicher, dass sich die .h und .c(pp) Datei der MD5-Lib auch in deiner Projektgruppe befinden.

Leange
28.06.2009, 13:38
Also die md5.h is inner PG drinne aber keine md5.c(pp) o.Ä. die finde ich auch gar nicht o0

Mit den Parametern leider auch kein Erfolg ...

DoS
28.06.2009, 13:48
Kannst dir ja mal angucken, wie die das gemacht haben: http://www.md5hashing.com/c++/ (http://www.md5hashing.com/c++/)

#include "md5wrapper.h"

gruß

blackberry
28.06.2009, 13:58
[Linker error] undefined reference to `MD5'

heißt: die Funktion MD5 wurde zwar durch ihren Prototypen richtig beschrieben, aber beim compilieren wurde kein "Funktionskörper", also der eigentliche Code der Funktion gefunden.

Versuch's also mal mit dem was inout gesagt hat:
-lssl -lopenssl -lcrypto an den Linker übergeben

Das geschieht wie folgt:
Dev-C++ > Projekt > Projekt Optionen > Parameter

Dann die Parameter in die Box mit der "Linker"-Überschrift einfügen.
(sicherheitshalber jeden Parameter in eine eigene Zeile)

Leange
28.06.2009, 14:12
So jetzt hab ich schon mal neue Fehlermeldungen :D

Sorry inout ich hatte die Parameter bei Compiler un net bei Linker eingefügt hattes überlesen :rolleyes:

3 C:\Dokumente und Einstellungen\******\Desktop\C++\md5\main.cpp In file included from main.cpp
1 C:\Dev-Cpp\include\openssl\md5.h expected constructor, destructor, or type conversion before '/' token
1 C:\Dev-Cpp\include\openssl\md5.h expected `,' or `;' before '/' token
C:\Dokumente und Einstellungen\******\Desktop\C++\md5\Makefile.win [main.o] Error 1

[B]//€ : Mit der Variante die DoS gepostet hat funktionierts jetzt ohne weitere Probleme! :D Danke!!