Хранение хэша пароля 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, который вы должны использовать.