![]() |
Datenbank: Mssql • Version: 2005 • Zugriff über: Delphi7,
Nullterminierten String aus MSSQL nvarchar auslesen
Hallo zusammen,
ich möchte verschlüsselte Passwörter in MsSQL in einem nvarchar-Feld abspeichern. Die Verschlüsselung (RC4) kann auch das Zeichen #0 erzeugen. Es ist kein Problem, wenn ich den Wert z.B. per
Code:
in der DB abspeichere. Wenn ich per SQL Server Management Studio den Wert ansehe, ist er komplett abgespeichert.
qu.fieldbyname('pwd').AsString := sPwd;
Sobald ich ihn aber per
Code:
auslese, ist alles nach #0 abgeschnitten. Ich weiß, dass es geht, wenn ich in MsSQL text statt nvarchar nehme, aber geht es nicht auch mit nvarchar? Ich verwende TAdoQuery
sPwd:=qu.fieldbyname('pwd').AsString;
Vielen Dank Gerd |
AW: Nullterminierten String aus MSSQL nvarchar auslesen
Du solltest die Passwörter mit Base16 kodieren.
Base16 ist nichts anderes als eine Hexumwandlung. siehe z.B. CodeLibrary ![]() Base64 ist platzsparender, aber da Passwörter so kurz sind spielt das keine Rolle. PS: Bei Delphi2010 muss man achtgeben, dass die Hexumwandlung auch wirklich funktionert - evtl. muss Datentyp string durch AnsiString ersetzt werden. |
AW: Nullterminierten String aus MSSQL nvarchar auslesen
Zitat:
Ein #0 ist nunmal für ein Zeichnkette der Kennzeichner für ein Ende der Zeichenkette (Jedenfalls wenns C/C++ betrifft). Und mir ist keine String-Datentyp bekannt in der das #0 einen gültigen Zeichenwert definiert. Zitat:
|
AW: Nullterminierten String aus MSSQL nvarchar auslesen
Hallo zusammen,
danke für die Feedbacks. Zitat:
Zufall scheint es nicht zu sein, denn ich habe es mehrmals ausprobiert und das Schreiben in die DB (auch unterschiedlicher Werte) hat immer geklappt. Nur beim Lesen wurden sie konsequent abgeschnitten. Als ich es dann mit text in der DB probiert habe, hat auch das sicher geklappt. Dafür aber andere Dinge nicht, die ich sonst noch benötige Falls keine anderen Lösungen kommen probiere ich es mal mit Base16 Grüße Gerd |
AW: Nullterminierten String aus MSSQL nvarchar auslesen
Zitat:
|
AW: Nullterminierten String aus MSSQL nvarchar auslesen
Hallo Bernhard,
da hast du natürlich recht. Das habe ich nicht. Aber ich habe eine andere Idee. Da nur bei ca jeder 5. Generierung ein String mit #0 erzeugt wird, rufe ich die Funktion so lange auf, bis im String kein #0 mehr enthalten ist. Ich verwende den Code aus ![]() Gerd |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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