Ich bin derzeit versucht, ein Projekt von mir von .NET 3.5 auf .NET 4.0SHA1CryptoServiceProvider geändert in .NET 4
Alles wirklich gut lief zu aktualisieren, alle Code kompiliert, alle Tests bestanden.
Dann traf ich ein Problem bei der Bereitstellung in meiner Staging-Umgebung.
Plötzlich funktionierten meine Logins nicht mehr.
Es scheint, meine SHA1 Hash-Passwörter anders in .NET gehasht werden 4.
ich den SHA1CryptoServiceProvider bin mit:
SHA1CryptoServiceProvidercryptoTransformSHA1 = new SHA1CryptoServiceProvider();
Um zu testen ich ein neuen Visual Studio-Projekt mit zwei Konsolenanwendungen erstellt.
Die erste zielte auf .NET Framework 3.5 und die zweite auf 4.0.
Ich lief genau den gleichen Hash-Code in beiden und verschiedene Ergebnisse wurden produziert.
Warum passiert das und wie kann ich das beheben?
Ich kann natürlich nicht alle meine Benutzer Passwörter aktualisieren, da ich nicht weiß, was sie sind.
Jede Hilfe würde sehr geschätzt werden.
CODE SAMPLE
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;
}
}
möglich Duplikat [Anmeldung nicht nach dem Upgrade auf ASP.net 4.0 von 3.5] (http://stackoverflow.com/questions/2739196/login -fails-nach-upgrade-zu-asp-net-4-0-from-3-5) - lösung enthalten –
leider ist das nicht der gleiche fall. Dies betrifft FormsAuthenticationCookies und ViewState und ist nur ein Problem, "wenn Sie gemischte ASP.NET 2.0/ASP.NET 4 ausführen". Aber DANG Ich dachte, es war meine Lösung – WebDude
Können Sie die AsymetricHash/Hash-Verwirrung klären? Nur um sicher zu sein. –