Actualmente estoy tratando de actualizar un proyecto mío de .NET 3.5 a .NET 4.0SHA1CryptoServiceProvider cambió en .NET 4
Todo iba muy bien, todo el código compilado, pasaron todas las pruebas.
Luego llegué a un problema de implementación en mi entorno de ensayo.
De repente, mis inicios de sesión ya no funcionaban.
Parece mis contraseñas hash SHA1 hash están siendo diferente en .NET 4.
estoy usando el SHA1CryptoServiceProvider:
SHA1CryptoServiceProvidercryptoTransformSHA1 = new SHA1CryptoServiceProvider();
Para probar que he creado un nuevo proyecto de Visual Studio con 2 aplicaciones de consola.
El primero dirigido a .NET Framework 3.5 y el segundo a 4.0.
Corrí exactamente el mismo código hash en ambos y se produjeron diferentes resultados.
¿Por qué sucede esto y cómo puedo solucionarlo?
Obviamente no puedo actualizar todas las contraseñas de mis usuarios considerando que no sé cuáles son.
Cualquier ayuda sería muy apreciada.
CÓDIGO DE MUESTRA
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;
}
}
posible duplicado de [Inicio de sesión falla después de la actualización a ASP.net 4.0 de 3.5] (http://stackoverflow.com/questions/2739196/login -fails-after-upgrade-to-asp-net-4-0-from-3-5) - solución incluida –
lamentablemente este no es el mismo caso. Esto se refiere a FormsAuthenticationCookies y ViewState y es solo un problema "si ejecuta ASP.NET 2.0/ASP.NET 4 mezclado". Pero DANG Pensé que era mi solución – WebDude
¿Puedes aclarar la confusión de AsymetricHash/Hash? Solo para estar seguros. –