J'ai une table avec les identifiants de connexion pour un système Telerik Sitefinity. Je veux utiliser les mêmes identifiants de connexion, mais avec une application différente qui n'a pas de bibliothèque Sitefinity. Je suis aux prises avec l'encodage du mot de passe, qui est réglé sur Hash (l'algorithme par défaut est SHA1).Telerik Sitefinity Password Fonction de hachage
J'ai essayé d'utiliser le code suivant pour coder les mots de passe, mais cela ne correspond pas à ce que Sitefinity a généré.
public string EncodePassword(string pass, string salt)
{
byte[] bytes = Encoding.Unicode.GetBytes(pass);
byte[] src = Convert.FromBase64String(salt);
byte[] dst = new byte[src.Length + bytes.Length];
Buffer.BlockCopy(src, 0, dst, 0, src.Length);
Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
HashAlgorithm algorithm = HashAlgorithm.Create("SHA1");
byte[] inArray = algorithm.ComputeHash(dst);
return Convert.ToBase64String(inArray);
}
EXEMPLE:
MOT DE PASSE: password111
SEL: 94EBE09530D9F5FAE3D002A4BF262D2F (comme enregistré dans la table utilisateur SF)
Hash avec la fonction ci-dessus: 8IjcFO4ad8BdkD40NJcgD0iGloU =
Hash dans le tableau généré par SF: A24GuU8OasJ2bicvT/E4ZiKfAT8 =
J'ai recherché en ligne si SF génère le mot de passe codé différemment, mais ne trouve aucun résultat. Comment puis-je utiliser les informations de connexion créées par SF sans les bibliothèques SF?
ça marche! Merci beaucoup. Où avez-vous trouvé cela? Je n'ai trouvé aucune information sur la façon dont SF a fait son hachage. –
Je viens de décompiler leur Telerik.Sitefinity.dll et a trouvé comment ça marche –