Funzione CreateMD5SSOHash (winineti.h)
La funzione CreateMD5SSOHash ottiene la password predefinita di Microsoft Passport per un account o un'area di autenticazione specificata, crea un hash MD5 usando una stringa di verifica di caratteri wide specificata e restituisce il risultato come stringa di byte esadecimali.
Sintassi
BOOL CreateMD5SSOHash(
[in] PWSTR pszChallengeInfo,
[in] PWSTR pwszRealm,
[in] PWSTR pwszTarget,
[out] PBYTE pbHexHash
);
Parametri
[in] pszChallengeInfo
Puntatore alla stringa di verifica dei caratteri wide da usare per l'hash MD5.
[in] pwszRealm
Puntatore a una stringa che assegna un nome a un'area di autenticazione per cui ottenere la password. Questo parametro viene ignorato a meno che pwszTarget non sia NULL. Se sia pwszTarget che pwszRealm sono NULL, viene usata l'area di autenticazione predefinita.
[in] pwszTarget
Puntatore a una stringa che assegna un nome a un account per il quale ottenere la password. Se pwszTarget è NULL, viene usata l'area di autenticazione indicata da pwszRealm .
[out] pbHexHash
Puntatore a un buffer di output in cui viene restituito l'hash MD5 in formato stringa esadecimale. Questo buffer deve avere una lunghezza di almeno 33 byte.
Valore restituito
Restituisce TRUE se l'operazione riesce o FALSE in caso contrario.
Commenti
Dopo che la funzione CreateMD5SSOHash ottiene correttamente la password di Microsoft Passport per l'account o l'area di autenticazione specificata, converte sia la stringa di verifica che la password da caratteri wide a caratteri a più byte (in genere a 8 bit), li concatena e usa la libreria RSA per generare un hash MD5 dalla chiave risultante. Converte quindi l'hash in una stringa con terminazione Null di cifre esadecimali a 8 bit (usando lettere minuscole) a cui punta il buffer a cui punta il parametro pbHexHash .
Il buffer di output a cui punta pbHexHash deve pertanto essere sufficiente per accettare due byte per ognuno dei 16 byte dell'hash, oltre a un carattere Null di terminazione, per un totale di 33 byte.
Come tutti gli altri aspetti dell'API WinINet, questa funzione non può essere chiamata in modo sicuro da DllMain o dai costruttori e distruttori di oggetti globali.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winineti.h (include Wininet.h) |
Libreria | Wininet.lib |
DLL | Wininet.dll |