Función CreateMD5SSOHash (winineti.h)

La función CreateMD5SSOHash obtiene la contraseña predeterminada de Microsoft Passport para una cuenta o dominio especificados, crea un hash MD5 a partir de ella mediante una cadena de desafío de caracteres anchos especificado y devuelve el resultado como una cadena de bytes de dígito hexadecimal.

Sintaxis

BOOL CreateMD5SSOHash(
  [in]  PWSTR pszChallengeInfo,
  [in]  PWSTR pwszRealm,
  [in]  PWSTR pwszTarget,
  [out] PBYTE pbHexHash
);

Parámetros

[in] pszChallengeInfo

Puntero a la cadena de desafío de caracteres anchos que se va a usar para el hash MD5.

[in] pwszRealm

Puntero a una cadena que asigna un nombre a un dominio para el que se va a obtener la contraseña. Este parámetro se omite a menos que pwszTarget sea NULL. Si pwszTarget y pwszRealm son NULL, se usa el dominio predeterminado.

[in] pwszTarget

Puntero a una cadena que asigna un nombre a una cuenta para la que se va a obtener la contraseña. Si pwszTarget es NULL, se usa el dominio kerberos indicado por pwszRealm .

[out] pbHexHash

Puntero a un búfer de salida en el que se devuelve el hash MD5 en formato de cadena hexadecimal. Este búfer debe tener al menos 33 bytes de longitud.

Valor devuelto

Devuelve TRUE si se ejecuta correctamente o FALSE de lo contrario.

Comentarios

Una vez que la función CreateMD5SSOHash obtiene correctamente la contraseña de Microsoft Passport para la cuenta o dominio especificados, convierte tanto la cadena de desafío como la contraseña de caracteres anchos a caracteres de varios bytes (generalmente de 8 bits), las concatena y usa la biblioteca RSA para generar un hash MD5 a partir de la clave resultante. A continuación, convierte el hash en una cadena terminada en null de dígitos hexadecimales de 8 bits (mediante letras minúsculas) a las que coloca en el búfer al que apunta el parámetro pbHexHash .

El búfer de salida al que apunta pbHexHash debe ser lo suficientemente largo como para aceptar dos bytes para cada uno de los 16 bytes del hash, además de un carácter nulo de terminación, para un total de 33 bytes.

Al igual que todos los demás aspectos de la API de WinINet, esta función no se puede llamar de forma segura desde DllMain ni desde los constructores y destructores de objetos globales.

Nota WinINet no admite implementaciones de servidor. Además, no se debe usar desde un servicio. En el caso de las implementaciones de servidor o los servicios, use los servicios HTTP de Microsoft Windows (WinHTTP).
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winineti.h (incluya Wininet.h)
Library Wininet.lib
Archivo DLL Wininet.dll

Consulte también

Control de la autenticación

Funciones de WinINet