CreateMD5SSOHash, fonction (winineti.h)
La fonction CreateMD5SSOHash obtient le mot de passe Microsoft Passport par défaut pour un compte ou un domaine spécifié, crée un hachage MD5 à partir de celui-ci à l’aide d’une chaîne de défi à caractères larges spécifiée et retourne le résultat sous la forme d’une chaîne d’octets de chiffres hexadécimaux.
Syntaxe
BOOL CreateMD5SSOHash(
[in] PWSTR pszChallengeInfo,
[in] PWSTR pwszRealm,
[in] PWSTR pwszTarget,
[out] PBYTE pbHexHash
);
Paramètres
[in] pszChallengeInfo
Pointeur vers la chaîne de défi à caractères larges à utiliser pour le hachage MD5.
[in] pwszRealm
Pointeur vers une chaîne qui nomme un domaine pour lequel obtenir le mot de passe. Ce paramètre est ignoré, sauf si pwszTarget a la valeur NULL. Si pwszTarget et pwszRealm ont la valeur NULL, le domaine par défaut est utilisé.
[in] pwszTarget
Pointeur vers une chaîne qui nomme un compte pour lequel obtenir le mot de passe. Si pwszTarget a la valeur NULL, le domaine indiqué par pwszRealm est utilisé.
[out] pbHexHash
Pointeur vers une mémoire tampon de sortie dans laquelle le hachage MD5 est retourné au format de chaîne hexadécimale. Cette mémoire tampon doit avoir une longueur d’au moins 33 octets.
Valeur retournée
Retourne TRUE en cas de réussite, ou FALSE dans le cas contraire.
Remarques
Une fois que la fonction CreateMD5SSOHash a obtenu le mot de passe Microsoft Passport pour le compte ou le domaine spécifié, elle convertit la chaîne de requête et le mot de passe de caractères larges en caractères multioctets (généralement 8 bits), les concatène et utilise la bibliothèque RSA pour générer un hachage MD5 à partir de la clé résultante. Il convertit ensuite le hachage en chaîne terminée par null de chiffres hexadécimaux 8 bits (à l’aide de lettres minuscules) qu’il place dans la mémoire tampon vers laquelle pointe le paramètre pbHexHash .
La mémoire tampon de sortie pointée par pbHexHash doit donc être suffisamment longue pour accepter deux octets pour chacun des 16 octets du hachage, plus un caractère null de fin, pour un total de 33 octets.
Comme tous les autres aspects de l’API WinINet, cette fonction ne peut pas être appelée en toute sécurité à partir de DllMain ou des constructeurs et destructeurs d’objets globaux.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winineti.h (inclure Wininet.h) |
Bibliothèque | Wininet.lib |
DLL | Wininet.dll |