blowfish decryption ?
-
meeydoo schrieb:
C:\Users\kanta\Desktop\Blowfish\ttest.o:ttest.cpp:(.text.startup+0x5f): undefined reference to `CBlowFish::CBlowFish(unsigned char*, unsigned int, SBlock const&)' C:\Users\kanta\Desktop\Blowfish\ttest.o:ttest.cpp:(.text.startup+0xb2): undefined reference to `CBlowFish::Decrypt(unsigned char const*, unsigned char*, unsigned int, int)'
Ähh, ne Blowfish.cpp gibts bei dir?! Oder wo stehen die Definitionen?
-
ah okay lol im beispiel programm wurde die .cpp datei garnicht included
ja jetzt macht es schon mehr sinn
trotzdem meckert er noch über die keylength, aber das bekomme ich bestimmt noch irgentwie alleine hin
danke!
-
meeydoo schrieb:
ah okay lol im beispiel programm wurde die .cpp datei garnicht included
Das macht man auch nicht. Die sollst Du nämlich separat kompilieren und dazu "linken" -- nicht inkludieren!
Dir scheinen wirklich wichtige Grundlagen zu fehlen. Lern Doch erstmal C++. Solche Basics hier runtergebetet zu bekommen, kannst Du nicht erwarten, da so'was immer viel besser in schlauen Büchern erklärt steht. Es ist Deine Aufgabe, Dich erst mal selbst mit diesen Grundlagen zu beschäftigen.
-
ja ich bin immernoch die basics am lesen. ich dachte nur das ich mal irgentwas praktisches nebenbei mache, leider hatte ich das kapitel linker etc noch nicht. vieleicht werde ich mal ein paar kapitel überspringen
-
----------
-
okay ich weiß nun wie ich dateien linke.
allerdings habe ich eine bitteauf der seite
http://www.codeproject.com/KB/security/blowfish.aspx
gibt es "beispiele" könnt ihr diese kompilieren? ich bekomme soviele fehlermeldungen das ich garnicht weiß wo ich anfangen soll.
bzw habt ihr vielleicht eine quelle wo ich kompilierbare beispiele herbekomme ? suche schon seit tagen, leider ohne erfolg.
-
meeydoo schrieb:
gibt es "beispiele" könnt ihr diese kompilieren?
Ich mag nicht extra einen Account dafür anlegen.
ich bekomme soviele fehlermeldungen das ich garnicht weiß wo ich anfangen soll.
Wenn ich mal raten darf, dann würde ich sagen, dass du nicht in der Lage bist, diese (unvollständigen) Codebeispiele zu einem vollständigen Programm zu ergänzen.
Bevor man Fremdbibliotheken benutzen kann, muss man erst einmal die Grundlagen beherrschen.
-
SeppJ schrieb:
meeydoo schrieb:
gibt es "beispiele" könnt ihr diese kompilieren?
Ich mag nicht extra einen Account dafür anlegen.
ich bekomme soviele fehlermeldungen das ich garnicht weiß wo ich anfangen soll.
Wenn ich mal raten darf, dann würde ich sagen, dass du nicht in der Lage bist, diese (unvollständigen) Codebeispiele zu einem vollständigen Programm zu ergänzen.
Bevor man Fremdbibliotheken benutzen kann, muss man erst einmal die Grundlagen beherrschen.
wahrscheinlich hast du recht, ich dachte nur das es ein vollständiges beispiel ist, was aber wohl nicht der fall ist
-
meeydoo schrieb:
wahrscheinlich hast du recht, ich dachte nur das es ein vollständiges beispiel ist, was aber wohl nicht der fall ist
Soweit ich das sehe, ist es auch vollständig für jede vernünftige Definition von vollständig. Aber dies gilt nicht mehr, falls man nicht in der Lage ist, das Basis-Drumherum wie eine main-Funktion und passende Header zu ergänzen und noch damit kämpft, wie man überhaupt mit mehreren Dateien umgeht.
Tut mir leid, dass ich dir ohne die Bibliothek selber nicht konkreter helfen kann.
-
SeppJ schrieb:
meeydoo schrieb:
wahrscheinlich hast du recht, ich dachte nur das es ein vollständiges beispiel ist, was aber wohl nicht der fall ist
Soweit ich das sehe, ist es auch vollständig für jede vernünftige Definition von vollständig. Aber dies gilt nicht mehr, falls man nicht in der Lage ist, das Basis-Drumherum wie eine main-Funktion und passende Header zu ergänzen und noch damit kämpft, wie man überhaupt mit mehreren Dateien umgeht.
Tut mir leid, dass ich dir ohne die Bibliothek selber nicht konkreter helfen kann.
kein problem, ich werde mich die tage mal intensiver mit blowfish auseinander setzen. vielleicht bekomme ich es ja alleine hin.
-
meeydoo schrieb:
kein problem, ich werde mich die tage mal intensiver mit blowfish auseinander setzen. vielleicht bekomme ich es ja alleine hin.
Eben nicht. Da hilft es dir gar nichts, mit Blowfish umzugehen. Du bist einfach noch nicht so weit, selbstständig fremde Bibliotheken zu benutzen und Beispiele zu verstehen. Einfach nur Copy&Paste&Abändern reicht beim Programmieren nicht.
-
okay, dann habe ich noch eine letzte frage.
ich linke die blowfish.cpp und .h datei und include die .h datei in meine main.cpp
meine maincpp sieht so aus
#include <iostream> #include "Blowfish.h" using namespace std; int main() { }
müsste es nicht kompilierbar sein? oder könnte ich selbst da einen fehler gemacht haben ?
-
Das sollte compilierbar sein. Ist es das nicht?
-
nein alleine die blowfish.cpp lässt sich nicht kompilieren. das ist ja mein problem
Compiling: BlowFish.cpp C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In constructor 'CBlowFish::CBlowFish(unsigned char*, size_t, const SBlock&)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:294:41: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:294:41: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception' C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:319:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:315:8: warning: unused variable 'iVal' [-Wunused-variable] C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Encrypt(unsigned char*, size_t, int)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:436:44: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:436:44: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception' C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Decrypt(unsigned char*, size_t, int)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:479:44: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:479:44: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception' C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Encrypt(const unsigned char*, unsigned char*, size_t, int)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:524:44: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:524:44: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception' C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp: In member function 'void CBlowFish::Decrypt(const unsigned char*, unsigned char*, size_t, int)': C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:567:44: error: 'exception' was not declared in this scope C:\Users\kanta\Desktop\testestest\TEST\BlowFish.cpp:567:44: note: suggested alternative: c:\program files (x86)\codeblocks\gcc\bin\../lib/gcc/i686-pc-mingw32/4.6.1/../../../../include/c++/4.6.1/exception:61:9: note: 'std::exception'
er beschwert sich über die class exception
#include <exception>vielleicht habe ich ein problem mit meinem compiler. ich benutze momentan 4.6.1 gcc. den brauche ich leider für die lambda funktion in meinem vorherigen programm.
-
Ahhh, das ist was anderes. Das ist ein Problem mit der Bibliothek selber. Der Code ist von 2001, da war der Standard noch frisch und Compiler ließen noch vieles durchgehen, was eigentlich nicht legal war. Ich habe gerade gesehen, dass man den Code auch ohne einloggen auf der Seite bekommen kann, daher kann ich dir nun konkreter helfen:
Mach mal unter den Includes in der Blowfish.cpp einusing namespace std;
. Das#include <exception>
ersetzt du durch#include <stdexcept>
. Und alle Vorkommen von exception ersetzt du durch eine passende Standardexception,domain_error
klingt passend für diese Fälle. Die Test.cpp die bei der Bibliothek dabei ist, hat auch noch mehrere Fehler, aber mach erst einmal das was ich geschrieben habe, dann sollte dein Testprogramm übersetzbar sein.
-
SeppJ schrieb:
Ahhh, das ist was anderes. Das ist ein Problem mit der Bibliothek selber. Der Code ist von 2001, da war der Standard noch frisch und Compiler ließen noch vieles durchgehen, was eigentlich nicht legal war. Ich habe gerade gesehen, dass man den Code auch ohne einloggen auf der Seite bekommen kann, daher kann ich dir nun konkreter helfen:
Mach mal unter den Includes in der Blowfish.cpp einusing namespace std;
. Das#include <exception>
ersetzt du durch#include <stdexcept>
. Und alle Vorkommen von exception ersetzt du durch eine passende Standardexception,domain_error
klingt passend für diese Fälle. Die Test.cpp die bei der Bibliothek dabei ist, hat auch noch mehrere Fehler, aber mach erst einmal das was ich geschrieben habe, dann sollte dein Testprogramm übersetzbar sein.super vielen dank! ich weiß garnicht was ich sagen soll,
ja void main und fehlende includes in der testdatei haben mich sehr verwirrt. wenigstens kann ich jetzt kompilieren, dh ich werde bestimmt bald ein fertiges programm haben!
danke
-
nice ich habe es schon hinbekommen