Я сейчас пытаюсь обновить проект шахты с .NET 3.5 для .NET 4.0SHA1CryptoServiceProvider изменен в .NET 4
Все шло очень хорошо, весь код скомпилирован, прошел все тесты.
Затем я столкнулся с проблемой развертывания в моей промежуточной среде.
Внезапно мои логины перестали работать.
Кажется, мои SHA1 хэшируются пароли быть хэшируются по-разному в .NET 4.
Я использую SHA1CryptoServiceProvider:
SHA1CryptoServiceProvidercryptoTransformSHA1 = new SHA1CryptoServiceProvider();
Для тестирования я создал новый проект Visual Studio с 2-мя консольными приложениями.
Первый адрес для платформы .NET Framework 3.5 и второй версии 4.0.
Я использовал точно такой же код хэширования в обоих случаях, и были созданы разные результаты.
Почему это происходит и как я могу это исправить?
Я, очевидно, не могу обновить все мои пароли пользователей, учитывая, что я не знаю, что это такое.
Любая помощь была бы принята с благодарностью.
КОД ОБРАЗЦА
public static class SHA1Hash
{
public static string Hash(string stringToHash)
{
return (Hash(stringToHash, Encoding.Default));
}
public static string Hash(string stringToHash, Encoding enc)
{
byte[] buffer = enc.GetBytes(stringToHash + stringToHash.Reverse());
var cryptoTransformSHA1 = new SHA1CryptoServiceProvider();
string hash = BitConverter.ToString(cryptoTransformSHA1.ComputeHash(buffer));
return hash;
}
}
возможно дубликат [Войти сбой после обновления до ASP.net 4.0 от 3.5] (http://stackoverflow.com/questions/2739196/login -fails-after-upgrade-to-asp-net-4-0-from-3-5) - решение включено –
, к сожалению, это не тот же случай. Это касается FormsAuthenticationCookies и ViewState и является лишь проблемой «если вы запускаете смешанный ASP.NET 2.0/ASP.NET 4». Но DANG Я думал, что это мое решение – WebDude
Можете ли вы устранить путаницу AsymetricHash/Hash? Просто быть в безопасности. –