Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vor dem Entschlüsseln prüfen, ob Passwort korrekt (https://www.delphipraxis.net/68020-vor-dem-entschluesseln-pruefen-ob-passwort-korrekt.html)

MrKnogge 23. Apr 2006 16:01


Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
Moin,

ich verschlüssele einige sensible Daten mit einem vom benutzer
festgelegten Passwort und speicher sie anschließend in einer Datei ab.
(ganz Simpel mit File of MyRecord, etc...)

Wenn ich die Daten beim nächsten Programmstart nun wieder laden möchte, könnte es sein, dass der
Benutzer ein falsches Passwort eingibt, ich die Daten mit einem falschen Passwort entschlüssel
und "Daten-Schrott" in mein programm lade.

Daher würde ich gern vorher wissen, ob das Passwort richtig ist.

Wie löse ich das am besten ?

Variante 1
Ich speicher das Passwort seperat in einer extra Datei ab. (Was ich aber, der Sicherheit wegen, vermeiden möchte)

Variante 2
Ich speicher zusätzlich einen mit dem gleichen Passwort verschlüsselten String in der Datei ab,
später entschlüssel ich diesen mit dem angegebenen Passwort: Ist er identisch ist das Passwort (wahrscheinlich) korrekt.


Hat sonst noch jemand eine weitere Idee, wie würdet Ihr es machen ?

gruss

Klaus01 23. Apr 2006 16:13

Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
einen Hashwert (md5 oder ähnlich) über das Passort bilden, diesen Haswert pro User speichern.
Dann den Hashwert von einem neu eingegebenen Passwort bilden und mit dem gespeicherten
vergleichen.

Grüße
Klaus

HuxXx 23. Apr 2006 16:16

Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
Wenn du es in einer seperaten Datei abspeichern möchtest, dann kannst du ja Hashes bilden.
Aus diesen Hashes kann man das Original nicht mehr konstruieren.
Wenn der Benutzer das Passwort eingibt, bilde daraus den Hash und vergleiche ihn mit dem Abgspeicherten.

Du kannst aber auch das Passwort als Verschlüsselungskey nehmen...

Greetz by Hux

//edit: Verdammt, 3 min zu spät...

MrKnogge 23. Apr 2006 16:24

Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
Gut, an Hashes hab ich, warum auch immer, gar nicht gedacht.
Ich denke ich werde den Hashwert in die Datei mit den verschlüsselten Daten speichern,
so kann man diese Datei beliebig weitergeben etc.

Danke für schnellen Antworten.

gruss

markusj 23. Apr 2006 16:53

Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
Oder du schreibst eine Kennnug in deinen Record rein, der als erstes Steht. Wenn diese Kennung beim entschlüsseln falsch ist, ist der Rest auch Müll und das Kennwort falsch.

mfG

Markus

EDIT: Uups, genau das steht in Variante 2 (danke für den netten Hinweis *g* ... erst lesen, dann schreiben)

MrKnogge 23. Apr 2006 16:57

Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
Was meiner 2. Variante entsprechen würde :wink:

himitsu 23. Apr 2006 18:00

Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
Hab auch soein Problem, und bin selber auf die idee mit den Vergleichsdaten (welche erst entschlüsselt und verglichen werden) gekommen, oder halt auch mit dem Hash, nur hat das doch auch einen Nachteil, denn aufgrund der vergleichsdaen, oder des Hashs könnte man doch ein Passwort erstellen, was zwar nicht mit dem Originalpasswort übereinstimmen muß, aber dennoch zum Entschlüsseln ausreichen würde, ergo hab ich im Moment noch keine gute Möglichkeit, um vor dem Entschlüsseln das Passwort auf Richtigkeit zu vergleichen :(

Klaus01 24. Apr 2006 08:52

Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
Es ist nicht unmöglich eine Passwort zu finden das den gleichen Hashwert eines anderen Passwortes hat
Aber es ist sehr unwahrscheinlich das ein ähnliches Passwort gefunden wird, das den gleichen Hashwert wie das richtige Passwort hat, wenn nur der Hashwert bekannt ist.

Kannst ja mal hier schauen: -> http://de.wikipedia.org/wiki/MD5

Grüße
Klaus

himitsu 24. Apr 2006 09:05

Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
 
Ich weiß, aber mir war die bloße Möglichkeit schon groß genug, :(

vorallem da ich standardmäßig nur 'ne süße XOR-Verschlüsselung einsetze (ist vom Tempo her wohl kaum noch zu überbieten, aber wenn es einen definierten Wert gibt ist die Entschlüsselung total einfach)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz