createMD5SSOHash 函数 (winineti.h)

CreateMD5SSOHash 函数获取指定帐户或领域的默认 Microsoft Passport 密码,使用指定的宽字符质询字符串从中创建 MD5 哈希,并将结果作为十六进制数字字节的字符串返回。

语法

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

参数

[in] pszChallengeInfo

指向要用于 MD5 哈希的宽字符质询字符串的指针。

[in] pwszRealm

指向一个字符串的指针,该字符串命名要为其获取密码的领域。 除非 pwszTargetNULL,否则将忽略此参数。 如果 pwszTargetpwszRealm 均为 NULL,则使用默认领域。

[in] pwszTarget

指向一个字符串的指针,该字符串命名要获取其密码的帐户。 如果 pwszTargetNULL,则使用 pwszRealm 指示的领域。

[out] pbHexHash

指向以十六进制字符串格式返回 MD5 哈希的输出缓冲区的指针。 此缓冲区的长度必须至少为 33 个字节。

返回值

如果成功,则返回 TRUE ,否则返回 FALSE

注解

一旦 CreateMD5SSOHash 函数成功获取指定帐户或领域的 Microsoft Passport 密码,它将质询字符串和密码从宽字符转换为多字节 (通常为 8 位) 字符,连接它们,并使用 RSA 库从生成的密钥生成 MD5 哈希。 然后,它将哈希转换为以 null 结尾的 8 位十六进制数字字符串, (使用小写字母) 放置在 pbHexHash 参数指向的缓冲区中。

因此, pbHexHash 指向的输出缓冲区必须足够长,以便为哈希的 16 个字节中的每个字节接受两个字节,外加一个终止 null 字符,总共为 33 个字节。

与 WinINet API 的所有其他方面一样,无法从 DllMain 或全局对象的构造函数和析构函数中安全地调用此函数。

注意 WinINet 不支持服务器实现。 此外,不应从服务使用它。 对于服务器实现或服务,请使用 Microsoft Windows HTTP Services (WinHTTP)
 

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winineti.h (包括 Wininet.h)
Library Wininet.lib
DLL Wininet.dll

另请参阅

处理身份验证

WinINet 函数