SQL Server Management Studio: so Bearbeiten Sie den MD5-Wert
Habe ich Tabelle [user]
, erstellt in SQL Server Management Studio, mit dieser Struktur:
id int PRIMARY NOT NULL
login varchar(255) NOT NULL
password varchar(32) NOT NULL
Jetzt, ich möchten, legen Sie zuerst Benutzer in die Datenbank ein. Rechts klicken, um die Tabelle [user]
wählen Sie Edit top 200 rows
und geben Sie den neuen Benutzer Werte in das raster:
id | login | password
1 | admin | MD5('admin')
Aber nach speichern, Passwort eingefügt ist MD5('admin')
, aber ich erwarte, dass die 21232f297a57a5a743894a0e4a801fc3
hash.
Wie kann ich tun, dass Sie in Microsoft SQL Server Management Studio?
Dank
P. S. ich bin mit SQL Server 2008 Express 10.50.1600.1 lauten und Microsoft SQL Server Management Studio 10.50.1600.1 lauten.
MD5
ist nicht eine integrierte Funktion. Es gibtHASHBYTES
, aber es gibtvarbinary
, nichtvarchar
, und Sie können Sie nicht Bearbeitenvarbinary
durch das "raster Bearbeiten".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Right click to table [user], choose Edit top 200 rows and type new user values into the grid
. Naja, was erwartest du? Die table edit ist eine Funktion, um Werte eingeben, und geben Sie die ZeichenfolgeMD5('admin')
dann wird der Wert in der Tabelle...MD5('admin')
. Es ist nicht eine interaktive Funktion, der evaluator (abgesehen von MD5 nicht eine SQL Server-Funktion,...)Nicht das Rad neu erfinden, speziell nicht neu erfinden, ein Sicherheits-Rad, wenn Sie nicht sprechen fließend crypto. Die meisten frameworks haben Module für Mitgliederverwaltung. ZB. Einführung in die Mitgliedschaft.
Können Sie Abfragen ausführen, die in der grid-Tabellen, die Sie zum ausführen der Abfrage zu aktualisieren. Zur Berechnung von MD5, die Sie verwenden können:
Den
Edit Top 200 Rows
Funktion ist für interaktive Dateneingabe, wo nur Werte akzeptiert werden, nicht auf Ausdrücke, die ausgewertet werden müssen, bevor gespeichert werden.Wenn Sie möchten, dass der eigentliche Wert eingefügt werden, das Ergebnis eines Ausdrucks angezeigt wird, verwenden Sie eine Abfrage Fenster zum einfügen der Daten. (Ich weiß nicht, ob Sie die
Edit
Funktion, nur weil Sie wollte, um zu versuchen, die Funktionalität oder aus einem anderen Grund, aber wenn es das war, weil Sie nicht wissen, wie man Daten mit SQL einfügen, werfen Sie einen Blick auf dieses Handbuch.)Auch, wie @Damien hat richtig bemerkt:, es gibt keine
MD5
Funktion in Transact-SQL. Es ist eines, das alsHASHBYTES
, der mit unterschiedlichen Hash-algorithmen wie MD5. Aber das Ergebnis dieser Funktion istvarbinary
, nichtvarchar
. Für MD5 speziell, es istvarbinary(16)
. Zu speichern, die eine direkte Folge derHASHBYTES
daher müssen Sie ändern Sie den Typ derpassword
Spalte entsprechend.So, ändern Sie den Typ der Spalte, dann öffnen Sie ein neues Abfrage-Fenster, und geben Sie in eine Befehl (oder Anweisung) zum einfügen der Daten. Einerseits sollten die Arbeit für Sie erledigen könnte wie folgt Aussehen:
Um fair zu sein, Sie kann weglassen, ändern der Spalte Typ, in dem Fall müssen Sie ersetzen die einfache
HASHBYTES
rufen Sie wie oben mit einem wie in @Garath Antwort. Ob Sie wirklich müssen zum speichern der hashes, wievarchar(32)
stattvarbinary(16)
ist eine ganz andere Frage, aber.