Werte über das Programmende hinaus speichern
-
Also, du suchst quasi eine Möglichkeit, ein Passwort abzuspeichern, ohne dass es direkt ausgelesen werden kann.
------------------------------
Dazu gibt es Hashfunktionen. Hashfunktionen generieren aus einem Passwort (oder einer Datei) einen Schlüssel.
Passwort => SchlüsselDabei kann der Schlüssel allerdings nicht zum Passwort zurückgerechnet werden!
Schlüssel ≠> PasswortDie einzige Möglichkeit eines Hacks besteht daher in einer Brute-force-Attacke, bei der der generierte Schlüssel mit Schlüsseln anderer Wörter verglichen wird. Dabei werden entweder alle Kombinationen ausprobiert, oder ein "Dictionary", d.h. eine Liste, durchgegangen, bis die Hashes übereinstimmen!
(Anmerkung: Es kann vorkommen, dass bei verschiedenen Passwörtern der gleiche Schlüssel herauskommt, allerdings kann mna dies vernachlässigen, da es selten vorkommt und auch nicht umbedingt ein kurzes, "einfaches" Passwort die Zweitlösung sein muss!)
------------------------------
Damit du damit jetzt etwas anfangen kannst, brauchst du eine Funktion, die einen Schlüssel aus einem Passwort bildet. DIe kannst du dir selber schreiben, oder die hashlib++ nehmen, die einige Funktionen beinhaltet (md5, sha, ...)
Passwort setzen:
-Du liest also ein PW ein
-generierst einen hashwert/schlüssel
-speicherst den Schlüssel ab (datei)Beim Login:
-Passwort einlesen
-schlüssel generieren
-diesen schlüssel mit schlüssel aus Datei vergleichen
-Wenn gleich => eingeloggtDie Hashlib:
-einfach die Dateien dem Projekt hinzufügen, dann:#include "hl_hashwrapper.h" #include "hl_md5wrapper.h" #include <string> #include <iostream> int main(int argc, char *argv[]) { hashwrapper *myWrapper=new md5wrapper(); std::string eingabe; std::cout << "generate hash from: "; std::cin >> eingabe; std::string hash=myWrapper->getHashFromString(eingabe); std::cout << "hash: " << hash << std::endl; delete myWrapper; return 0; }
Wenn du noch Fragen hast...
-
Ey danke langeweile^^. Ich muss mich jetzt erstmal durcharbeiten.
Novel
-
Hi,
wenn ich deinen Quellcode kompiliere, dann kommen zwei Fehlermeldungen:[Linker error] undefined reference to `md5wrapper::md5wrapper()' und
ld returned 1 exit statusIch habe alle Headerdateien aus dem Link oben in den Ordner gepackt wo die Headerdateien vom Compiler abgespeichert sind.
Muss ich das noch irgendwie im Programm einstellen?Ich benutze Dev-C++
Danke im Voraus
Novel
-
Ich vermute, dass du noch die hashlob-cpp-Datei(en) in dein Projekt einbinden musst...
Oder du wählst in den Projektoptionen irgenwo [Linker] und fügst die hash-static-lib da ein:- Installing hashlib++
Windows:
For Windows user it is recommend to download the binary setup program
"Setup.exe" which will install hashlib++ as a static library to your
system.Run Setup.exe and read the license agreements. If you agree click on
"I Agree" and choose a destination folder for hashlib++ within the
following page. Finally, click on "Install" to start the installation.Ich hab zum Glück kein Windows am fliegen, meine Dev-Cpp-Erfahrungen sind daher älter...
-
Novel schrieb:
Muss ich das noch irgendwie im Programm einstellen?
Du musst gegen die Bibliothek linken, oder alle *.cpp dateien aus den hahslib++ Sourcen in dein Projekt einbinden.
Gruß,
Benny
-
Hi Leute,
eine Frage:
Ich würde mir gerne mal das Programm angucken, um meine eigene Idee einer Verschlüsselung umzusetzen, diese sollte aber kein hash werden.Nun zum Problem, wie schon von langeweile beschrieben wird, braucht man für Windows eine setup.exe. Steht auch in der readme der Downloadfiles. Entweder bin ich blind oder die Datei befindet sich nicht in dem Downloadverzeichniss. Ich habe auch schon gegoogelt, aber kein Ergebnis dazu gefunden.
Ich hoffe Ihr könnt mir helfen
Danke R4V3N
-
Hallo,
den Link zum Setup findest du hier:
http://doapspace.org/doap/sf/hashlib2plus
Übrigens über Google gefunden
MfG,
Probe-Nutzer
-
Danke, keine Ahnung... vllt war ich einfach nur blind
-
Dev-C++ wird seit Jahren nicht mehr weiterentwickelt, es ist niemals aus dem Beta-Stadium rausgekommen und total instabil und Crap.
Nimm eine anständige IDE, z.B. Code::Blocks!Du kannst keine Hilfe erwarten, wenn du so einen alten Dreck benutzt!
-
Angepisster Gast schrieb:
Dev-C++ wird seit Jahren nicht mehr weiterentwickelt, es ist niemals aus dem Beta-Stadium rausgekommen und total instabil und Crap.
Nimm eine anständige IDE, z.B. Code::Blocks!Code::Blocks ist ein Synonym für Instabilität. Nimm Visual Studio 2008 Express.