хэш-пароль в SQL Server (asp.net) - PullRequest
2 голосов
/ 13 мая 2010

Так должен выглядеть хешированный пароль, хранящийся в SQL Server?

альтернативный текст http://img28.imageshack.us/img28/2545/88871034.gif

Это функция, которую я использую для хэширования пароля (я нашел ее в каком-то уроке)

public string EncryptPassword(string password)
{
    //we use codepage 1252 because that is what sql server uses
    byte[] pwdBytes = Encoding.GetEncoding(1252).GetBytes(password);
    byte[] hashBytes = System.Security.Cryptography.MD5.Create().ComputeHash(pwdBytes);
    return Encoding.GetEncoding(1252).GetString(hashBytes);
}

EDIT Я попытался использовать sha-1, и теперь строки выглядят так, как они должны:

public string EncryptPassword(string password)
{
    return FormsAuthentication.HashPasswordForStoringInConfigFile(password, "sha1");
}

// example output: 39A43BDB7827112409EFED3473F804E9E01DB4A8

Результат на изображении выше выглядит как разорванная строка, но этот sha-1 выглядит нормально ....

Будет ли это достаточно безопасно?

1 Ответ

3 голосов
/ 13 мая 2010

Ты рядом, но не совсем там.

Для безопасного хэша вам понадобится значение salt в другом столбце. Во-вторых, старайтесь держаться подальше от MD5 как провайдера хеширования. Это не так безопасно, как SHA-1 или SHA-2. SHA-1 включен в .NET так же, как MD5.

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