![]() |
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 |
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 |
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... |
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 |
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) |
Re: Vor dem Entschlüsseln prüfen, ob Passwort korrekt
Was meiner 2. Variante entsprechen würde :wink:
|
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 :(
|
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: -> ![]() Grüße Klaus |
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