[SQL-сервер], что тип данных использовать для соли пароля и значений хэш-функции и что длина?

Я генерирую соленые и значения хэш-функции от своих паролей при помощи,

string salt = CreateSalt(TxtPassword.Text.Length);
string hash = CreatePasswordHash(TxtPassword.Text, salt);

private static string CreateSalt(int size)
{
    //Generate a cryptographic random number.
    RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
    byte[] buff = new byte[size];
    rng.GetBytes(buff);

    // Return a Base64 string representation of the random number.
    return Convert.ToBase64String(buff);
}

private static string CreatePasswordHash(string pwd, string salt)
{
    string saltAndPwd = String.Concat(pwd, salt);
    string hashedPwd =
     FormsAuthentication.HashPasswordForStoringInConfigFile(
     saltAndPwd, "sha1");

    return hashedPwd;
}

Какой тип данных Вы предложили бы для хранения этих значений в SQL-сервере? Любое предложение...

Соль:9GsPWpFD

Хеш:E778AF0DC5F2953A00B35B35D80F6262CDBB8567

15
задан ACP 19 May 2010 в 05:19
поделиться

2 ответа

ASPNET_DB говорит следующее - не ошибетесь.

Password nvarchar(128) NOT NULL,
PasswordSalt nvarchar(128) NOT NULL,

хотя 128 может показаться большим количеством, различные типы шифрования могут привести к получению строк большего размера, чем вы использовали вначале.Нет абсолютно никаких причин не следовать примеру очень умных людей, которые потратили тысячи человеко-часов на разработку системы членства asp.net.

8
ответ дан 1 December 2019 в 05:02
поделиться

Мы храним наши пароли в виде двоичного хэша SHA512

1
ответ дан 1 December 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: