В каком формате выводится HashPasswordForStoringInConfigFile () и как его лучше хранить? - PullRequest
2 голосов
/ 11 апреля 2009

Я использую эту функцию, чтобы сгенерировать хеш для пароля и затем сохранить его в базе данных (SQL Server).

Код выглядит так:

byte[] saltBytes = new byte[16];
new RNGCryptoServiceProvider ().GetBytes (saltBytes);
string salt = Convert.ToBase64String (saltBytes);
string saltedPasswordHash =
FormsAuthentication.HashPasswordForStoringInConfigFile (password + salt, FormsAuthPasswordFormat.SHA1.ToString ());

Теперь вопрос: в каком формате выводится HashPasswordForStoringInConfigFile () - сохранять ли его как char (длина) или nchar (длина)?

Или есть какой-то другой предпочтительный способ хранения хеша, может быть, не в виде строки?

Будем благодарны за любые комментарии и комментарии.

Ответы [ 2 ]

1 голос
/ 11 апреля 2009

Поскольку вы используете C #, возможно, стоит подумать об использовании решения хеширования BCrypt. Он разработан по алгоритму шифрования BCrypt парнями, пишущими OpenBSD, и является очень сильным алгоритмом. Самое приятное то, что вам не нужно беспокоиться о солях (но они есть), и вы можете усложнить выработку соли с течением времени.

BCrypt.net - надежное хеширование паролей для .NET и Mono

1 голос
/ 11 апреля 2009

SQL Server поддерживает двоичные столбцы (binary(len) и varbinary(len)), предназначенные для хранения двоичных данных. Вы можете рассмотреть возможность их использования. В этом случае вы можете использовать классы, такие как System.Security.Cryptography.SHA512Managed напрямую, вместо HashPasswordForStoringInConfigFile

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...