Alle,Handhabung gehasht Passwörter als varbinary in SQL Server gespeichert und klassischen ASP
leider im Voraus - ich bin ein Neuling in den meisten der unten aufgeführten Themen (SQL, ASP). Anyway ...
Ich habe eine ziemlich einfache Web-App, die Benutzer mit einem Benutzernamen und einem Passwort anmelden müssen.
Das Front-End erstellt einen gesalzenen SHA1-Hash des Kennworts und sendet es (zusammen mit dem Benutzernamen) an eine ASP-Seite.
Diese ASP-Seite übernimmt die Daten, ruft eine gespeicherte Prozedur in der SQL Server-Datenbank auf und übergibt den Benutzernamen und das Hash-Kennwort; Die gespeicherte Prozedur schreibt die Informationen in die Tabelle 'Benutzer'.
Der Typ der Kennwortspalte in der Tabelle ist varbinary.
Soweit ich sagen kann, wenn der ASP das Passwort (Passwort = Request.Form ("Passwort") erhält), ist es ein String.
ich kann 'Trick' SQL Server in sie als varbinary Handhabung, wenn ich die Abfrage auf diese Weise erstellen:
query = "EXEC sp_save_user @ username = '" & Benutzername & "', @ password = 0x" & Passwort
IOW - ich bin eine "0x" vor der Passwort-Zeichenfolge.
Allerdings habe ich gelesen, dass es eine bessere Praxis ist eine parametrisierte Abfrage zu verwenden:
Beispiel: SET objParam = objCommand.CreateParameter ("@ password", 204, 1, 40, Passwort)
Dies schlägt jedoch fehl, weil der Parameter binär (204) sein soll, aber das Passwort eine Zeichenkette ist.
Also, wie konvertiere ich eine Zeichenfolge wie "4a5e6a8d521ed487b81c91e131cf27e8dae9b783" in eine binäre in ASP?
Vielen Dank im Voraus!
Es ist genauso einfach, die Konvertierung in VBScript durchzuführen, und auf diese Weise können Sie Ihre Datenbankschnittstelle sauber halten, wenn Sie auf eine neuere UI-Technologie aktualisieren. –