J'essaie actuellement de mettre à jour un projet de la mine de .NET 3.5 à 4.0 .NETSHA1CryptoServiceProvider a changé dans .NET 4
Tout allait vraiment bien, tout le code compilé, tous les tests passés.
Ensuite, j'ai rencontré un problème de déploiement dans mon environnement de transfert.
Soudain, mes connexions ne fonctionnaient plus.
Il semble que mes SHA1 mots de passe hachés sont hachés différemment dans .NET 4.
J'utilise le SHA1CryptoServiceProvider:
SHA1CryptoServiceProvidercryptoTransformSHA1 = new SHA1CryptoServiceProvider();
Pour tester, j'ai créé un nouveau projet Visual Studio avec 2 applications de la console.
Le premier ciblé sur .NET Framework 3.5 et le second sur 4.0.
J'ai exécuté exactement le même code de hachage dans les deux et différents résultats ont été produits.
Pourquoi cela se produit-il et comment puis-je résoudre ce problème?
Je ne peux évidemment pas mettre à jour tous les mots de passe de mes utilisateurs étant donné que je ne sais pas ce qu'ils sont.
Toute aide serait grandement appréciée.
CODE EXEMPLE
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;
}
}
double possible de [Connexion échoue après mise à niveau vers ASP.net 4.0 de 3.5] (http://stackoverflow.com/questions/2739196/login -fails-after-upgrade-to-asp-net-4-0-from-3-5) - solution incluse –
malheureusement ce n'est pas la même affaire. Cela concerne FormsAuthenticationCookies et ViewState et est seulement un problème "si vous exécutez mixte ASP.NET 2.0/ASP.NET 4". Mais DANG je pensais que c'était ma solution – WebDude
Pouvez-vous éclaircir la confusion AsymetricHash/Hash? Juste pour être sûr. –