Hallo,
wir haben folgendes Problem:
Ein verschlüsseltes Passwort soll in einem String-Feld in der Datenbank abgespeichert werden.
In diesem Passwort sind bewusst auch Sonderzeichen enthalten (
ASCII Bereich von 32 -255)
Dieses Passwort wird nicht richtig in die Datenbank abgespeichert.
Wir übergeben das Passwort einer
Query und schreiben es in die Datenbank.
Delphi-Quellcode:
query.sql.text:='
update Benutzer set passwort=:Ppass where LOGINname= :PNAME';
query.ParamByName('
ppass').AsString := pass;
query.ParamByName('
Pname').AsString:= benutzer;
Query.ExecSQL;
Beim Debuggen können wir ja sehen, welches Passwort in die Datenbank geschrieben werden soll.
Der Fehler betrifft nur einzelne Zeichen, z. B. tMdú•
erhalten wir in der Entwicklungsumgebung tMdú• angezeigt.
In der Datenbank wird das letzte Zeichen "•" als dicker Strich von oben nach unten dargestellt.
Wenn wir die Daten aus der Datenbank in einen Editor kopieren, wird das Zeichen wieder als Punkt angezeigt.
Wenn wir das gespeicherte Passwort dann beim nächsten Neustart gegen die Benutzereingabe überprüfen, wird das Zeichen falsch entschlüsselt.
Wir verwenden Delphi 2010 und Windows 7.
Das gleiche Programm funktoniert unter Delphi 7 und Windows XP.
Was könnte das sein?