Frage

In meinem ASP.NET Web-app ich meine Benutzer-Passwörter mit SHA512 Hashing.

Trotz viel SO'ing und googeln Ich bin unklar, wie ich sie in der Datenbank werden die Speicherung (SQL2005) - der Code unten zeigt die Grundlagen, wie ich die Erstellung der Hash als String und ich bin zur Zeit einfügen sie in die Datenbank in einen Char (88) Spalte wie das scheint die Länge erstellt konsequent

werden

Hält es als String der beste Weg, es zu tun, wenn so wird es immer 88 Zeichen sein auf einem SHA512 (wie ich einige bizarre Sachen auf Google gesehen haben)?

 Dim byteInput As Byte() = Encoding.UTF8.GetBytes(sSalt & sInput)
 Dim hash As HashAlgorithm = New SHA512Managed()
 Dim sInsertToDatabase As String =  Convert.ToBase64String(hash.ComputeHash(byteInput))
War es hilfreich?

Lösung

SHA512 gibt 512 Bits oder 64 Bytes. Sie können diese 64 Bytes in einer binären Spalte speichern, wenn Sie dies wünschen.

Wenn Sie den Hash behandeln möchten außerhalb der Anwendung bequemer ist eine Base64 Zeichenfolge zu speichern, wie Sie jetzt tun. Base64 fügt etwa 33% der konstanten Kopf, so dass Sie die Zeichenfolge immer erwarten, dass 88 Zeichen sein.

Wie gesagt, hat ASP.NET eine rel="noreferrer"> builtin, die Sie verwenden sollen.

scroll top