Хранение хэша пароля SHA512 в базе данных

в моем ASP.NET веб-приложение я хеширую свои пароли пользователей с помощью SHA512.

несмотря на много SO'ING и Googling я неясен, как я должен хранить их в базе данных ( SQL2005) - код ниже показывает основы того, как я создаю хэш в виде строки, и я в настоящее время вставляю его в базу данных в столбец Char(88), поскольку это, кажется, длина, созданная последовательно

удерживает его как строку лучший способ сделать это, если так будет всегда 88 символов на SHA512 (как я видел некоторые странные вещи в Google)?

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

1 ответов


SHA512 выводит 512 бит или 64 байта. Вы можете сохранить эти 64 байта в двоичном столбце, если хотите.

Если вы хотите обрабатывать хэш вне вашего приложения, удобнее хранить строку Base64, как вы это делаете сейчас. Base64 добавляет примерно 33% постоянных накладных расходов, поэтому вы можете ожидать, что строка будет всегда 88 символов.

это сказало, ASP.NET имеет довольно полная система аутентификации builtin, который вы должны использовать.