Verschlüsselung mit QT

Alles rund um die Programmierung mit Qt
Antworten
marcomarco
Beiträge: 4
Registriert: 28. Juni 2007 11:58

Verschlüsselung mit QT

Beitrag von marcomarco »

Hallo,

ich suche eine Möglichkeit, Passwörter verschlüsselt in einer Datei abzulegen, oder die Datei selbst zu verschlüsseln.
Weiß jemand, ob QT sowas bietet? Ich habe leider noch nichts gefunden, wobei QT doch sinst eigentlich alles kann :)

Wenn jemand eine kostenlose C++ - Bilbilothek kennt, die entsprechenden Funktionen zur Verfügung stellt, wäre das genauso toll.

:D

Viele Grüße Marco
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag von @udisello »

Hallo,

anstatt zu verschlüsseln kannst Du auch eine Hash erstellen und diesen in der Datei ablegen. Seit Qt 4.3 gibt es die Klasse QCryptographicHash.
MfG @udisello

Qt Version 4.3.0, MS VS 2005
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Oder mal bei openssl nachschaun...
marcomarco
Beiträge: 4
Registriert: 28. Juni 2007 11:58

Beitrag von marcomarco »

@udisello hat geschrieben:Hallo,

anstatt zu verschlüsseln kannst Du auch eine Hash erstellen und diesen in der Datei ablegen. Seit Qt 4.3 gibt es die Klasse QCryptographicHash.
Das Problem dabei ist, dass die Verschlüsselugn nur in eine Richtung funktioniert. Das Programm soll ein Passwort, das der Benutzer einmal eingibt in einer Datei speichern. Soweit geht das ja mit dem Hash. Beim nächsten Programmstart soll das Passwort dann wieder vorgeschlagen werden. Aber aus dem Hash kann ich es doch nicht zurückrechnen, acuh wenn ich den Schlüssel habe, oder liege ich da falsch?
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag von @udisello »

Wenn das Passwort vorgeschlagen wird, ist es doch kein Passwort mehr :D Also zurückrechnen geht natürlich nicht und das ist auch gut so. Du willst also dem Benutzer die Möglichkeit geben, das Passwort zu speichern?
MfG @udisello

Qt Version 4.3.0, MS VS 2005
marcomarco
Beiträge: 4
Registriert: 28. Juni 2007 11:58

Beitrag von marcomarco »

Ja genau, da habe ich mich vielleicht etwas schlecht ausgedrückt. Ja nach dem, welcher Benutzer auf dem Rechner eingeloggt ist, sollen in dem Programm seine persönlichen Logindaten vorgeschlagen werden. Dazu brauche ich ein Verschlüsselungsverfahren, bei dem es einen Schlüssel gibt, mit dem man das Verschlüsselte wieder zurückrechen kann.
@udisello
Beiträge: 50
Registriert: 19. März 2007 14:58
Wohnort: Sachsen

Beitrag von @udisello »

Wenn ich fragen darf, wie, bzw. wo möchtest Du denn speichern, dass das Passwort zu Beginn vorgeschlagen wird?
MfG @udisello

Qt Version 4.3.0, MS VS 2005
marcomarco
Beiträge: 4
Registriert: 28. Juni 2007 11:58

Beitrag von marcomarco »

Ganz einfach: Die Benutzer müssen beim ersten Start Ihre LoginDaten eingeben. Diese werden verschlüsselt in einer Datei abgelegt, die auf dem Rechner im Benutzereigenen Ordner "Anwendungsdaten" gespeichert wird. Der Schlüssel soll zum Einen aus dem Benutzernamen bestehen, mit dem er sich in Windows angemeldet hat und zum anderen aus einem Teil, den der Admin vorgibt.

Nautürlcih ist das nciht sehr sicher, aber das ist bei dem Benutzerkreis nicht weiter schlimm. Wahrscheinlich würde es schon reichen, wenn ich die Sachen in Klartext speichere und die Datei verstecke :lol: Nein quatsch, ganz so ist es auch nicht, aber ich baue die Verschlüsselung mehr aus spaß an der Freude ein :)
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Nen Hash ist nen assymetrischer Schluessel, also fuer dein vorhaben nicht geeignet. suche mal nach symetrischen Verschluesselungsverfahren.

Der Knackpunkt ist dann natuerlich, wo du den schluessel fuer die "verschluesselten daten inkl passwort" aufbewahrst. Ihn vom user eingeben lassen ala elektronische Brieftasche wie bei diversen Linux / browserloesungen kommt nicht in frage ....

Im Code(hardcodiert) verstecken ? fuer deine beduerfnisse sicher ausreichend, fuer kritische anwendungen eher nicht ....

Besser den schluessel fuer die decodierung der daten auf nen wechseldatentraeger speichern, und den an den "kunden" binden :-)

Ciao ....
Antworten