ich schreibe gerade ein kleines Programm, das u.a. auch ein vom Benutzer eingegebenes Passwort in einer Datei speichert. Allerdings möchte ich nicht, dass das im Klartext dort gespeichert wird. Nur, ich kenne mich kaum in Verschlüsselung aus. Daher suche ich eine Header-Datei mit Implementierung, die eine einfache Ver- und Entschlüsselung bereitstellt. Es muss kein komplizierter Algorithmus sein und die Funktionen sollte auch nicht allzu schwer einzubinden sein. Ideal wäre einfach eine Funktion, die einen übergebenen String verschlüsselt und eine, die den wieder in Klartext umwandelt.
am allereinfachsten suchst Du Dir ein nettes Passwort (Key), dass Du im Programm festlegst. Dann nimmst Du das erste Zeichen Deines Textes, den Du verschlüsseln willst (Klartext) und das erste Zeichen des Keys und verXORst das ganze. Das Ergebnis schreibst Du z.B. als Hexzahl in eine Datei. Für das zweite Zeichen des Klartextes nimmst Du das zweite Zeichen des Keys, usw. Wenn Du beim letzten Zeichen des Keys angekommen bist, nimmst Du wieder das erste Zeichen.
Beim entschlüsseln einfach wieder verXORn, dann hast Du den Klartext.
Das ganze lässt sich sehr schnell implementieren und ist nicht ganz so einfach zu entschlüsseln wie eine Verschiebechiffre (Buchstabentauschen).
ich schreibe gerade ein kleines Programm, das u.a. auch ein
vom Benutzer eingegebenes Passwort in einer Datei speichert.
Allerdings möchte ich nicht, dass das im Klartext dort
gespeichert wird. Nur, ich kenne mich kaum in Verschlüsselung
aus. Daher suche ich eine Header-Datei mit Implementierung,
die eine einfache Ver- und Entschlüsselung bereitstellt. Es
muss kein komplizierter Algorithmus sein und die Funktionen
sollte auch nicht allzu schwer einzubinden sein. Ideal wäre
einfach eine Funktion, die einen übergebenen String
verschlüsselt und eine, die den wieder in Klartext umwandelt.
Hi,
gerade bei Deiner Anwendung ist es nicht ratsam, ein umkehrbares Verfahren einzusetzen. Wenn Du nur eine Hashfunktion anwendest und den Hashwert speicherst, und wenn die Hashfunktion nicht umkehrbar ist, dann ist das Paßwort sicher aufgehoben. Bei der Zugangsprüfung interessiert Dich nicht, welches Paßwort der Benutzer hat; Du berechnest mit dem gleichen Algorithmus die Benutzereingabe und vergleichst das Ergebnis mit dem gespeicherten Wert.
hmm, auf den Einweg-Hash hätte ich auch kommen können. Ist eine gute Idee.
Ich habe übrigens nicht behauptet, dass das XOR Verfahren absolut sicher ist. Es ist halt nur etwas schwerer zu knacken als eine Verschiebechiffre. Wirklich sicher ist nur ein One-Time Pad. Und da gibt es das Problem des Schlüsseltauschs.
Viele Grüsse,
Herb
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Bei der Zugangsprüfung interessiert Dich nicht, welches Paßwort
der Benutzer hat; Du berechnest mit dem gleichen Algorithmus
die Benutzereingabe und vergleichst das Ergebnis mit dem
gespeicherten Wert.
Vielen Dank für den Hinweis. Allerdings habe ich mein Anliegen falsch ausgedrückt. Das Passwort soll nur einmalig eingegeben werden, nicht bei jeder Zugangsprüfung erneut. Hintergrund: ich schreibe einen kleinen Mailclient. Dabei gibt der Benutzer einmalig sein POP-Passwort ein, das wird (wie auch immer) in einer Datei gespeichert und beim Starten des Programms wieder ausgelesen. Daher würde der Einweg-Hash-Modus ja hier nicht funktionieren, oder?