crypto++ zur DES - Verschlüsselung
-
Hallo,
ich möchte ein Kennwort DES verschlüsseln. Kann ich dazu crypto++ idealerweise benutzen od. gibt es da evtl. eine bessere Alternative?
(nutze c++ Builder 6)Danke!
-
Hallo
crypto++ ist keine Builder-spezifische Bibliothek. Und ich glaube auch nicht das es eine solche gibt, also verschieb ich dich mal.
bis bald
akari
-
Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo,
Es gibt schon Kryptographie-Komponenten für den BCB6.
http://www.cityinthesky.co.uk/cryptography.html
-
Danke!
werde allerdings nicht schlau aus den Beispielen.
Habe einen Key (z.B. 8 Zeichen lang) und mein Kennwort zum Verschlüsseln.
Brauche ich dann nur DCP_des->Init und DCP_des->EncryptString(..) oder muss ich auch mit Hash.... was machen?
-
Hier mal ein Beispiel wie das bei mir geht.
// Mit MD5-Hash initialisieren, in edt_phrase->Text steht mein Schlüssel dcpdes_1->InitStr(edt_phrase->Text, __classid(TDCP_md5)); // Text in edt_Input->Text verschlüsseln und nach edt_output->Text schreiben edt_output->Text = dcpdes_1->EncryptString(edt_Input->Text); // internen Puffer zurücksetzten dcpdes_1->Reset(); // Hier zur Kontrolle alles wieder entschlüsseln dcpdes_1->InitStr(edt_phrase->Text, __classid(TDCP_md5)); edt_Test->Text = dcpdes_1->DecryptString(edt_output->Text); // alle internen Statusvariablen löschen dcpdes_1->Burn();
irgendwer sollte diesen Thread mal wieder zum BCB-Forum zurückverschieben. akari war hier etwas voreilig.
-
Danke!
Mein Schlüssel ist nun aber kein AnsiString sondern sieht so aus:unsigned char fixedkey[8] = {32,72,105,10,25,88,78,5};
Habe unter Suchen nichts zur Konvertierung gefunden. Hat jemand eine Idee?
Es handelt sich beim Schlüssel ja nicht um Buchstaben+Zahlen, sondern um ASCII-Zeichen in Dezimalschreibweise.Ich habe nun einmal ein Edit angelegt, in das ich den fixedkey kopiere:
strcpy( Form1->Key->Text.c_str(), fixedkey );
-
strcpy( Form1->Key->Text.c_str(), fixedkey );
Das darfst du nicht tun. c_str() liefert einen const char* auf den internen Speicher von AnsiString und den darfst du auf keinem Fall beschreiben.
AnsiString hat nun keinen Konstruktor für unsigned char. Du könntest einen std::string als Zwischenspeicher nehmen.
-
Währen folgende Anweisungen bzgl. Zeichenzuweisung/Kopie mit AnsiString und Char* korrekt?
char* pword = new char[8]; char* encryptedpword = new char[8+1]; void des(unsigned char *, unsigned char *);
strcpy( pword, Form1->Passwort->Text.c_str() ); des(encryptedpword, encryptedpword); Form1->verschluesseltesPasswort->Text = encryptedpword;
Danke!