Я использую эту функцию для генерации хэша для пароля и сохранения его в базе данных (SQL Server).Какой формат является результатом HashPasswordForStoringInConfigFile() и как сохранить его лучше всего?
код выглядит следующим образом:
byte[] saltBytes = new byte[16];
new RNGCryptoServiceProvider().GetBytes (saltBytes);
string salt = Convert.ToBase64String (saltBytes);
string saltedPasswordHash =
FormsAuthentication.HashPasswordForStoringInConfigFile (password + salt, FormsAuthPasswordFormat.SHA1.ToString());
Теперь вопрос: в каком формате выход HashPasswordForStoringInConfigFile() - я хранить его в символьном (длина) или NCHAR (длина)?
Или есть ли другой предпочтительный способ хранения хэша, может быть, не как строка?
Любые вводные и полунаправленные комментарии приветствуются.
Для записи, это не лучший способ сохранить хэш пароля. См. [Как безопасно использовать хэш-пароли?] (Https://security.stackexchange.com/q/211/39623) и, если потребуется, мой ответ на [Drop in replacement for FormsAuthentication.HashPasswordForStoringInConfigFile?] (Https: // stackoverflow .com/q/13527277/1967612), в котором подробно описаны варианты перехода от этого к PBKDF2, все в .NET - по существу, либо переведите все в RFC2898DeriveBytes (pw, соль, итерации), все в RFC2898DeriveBytes (HashPasswordForStoringInConfigFile (pw, MD5 "), соль, итерации) или обновить пользователей при входе в систему –