Поделиться через


Функция 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

Указатель на строку с именем области, для которой требуется получить пароль. Этот параметр игнорируется, если только pwszTarget не имеет значение NULL. Если и pwszTarget , и pwszRealm имеют значение NULL, используется область по умолчанию.

[in] pwszTarget

Указатель на строку с именем учетной записи, для которой требуется получить пароль. Если pwszTarget имеет значение NULL, используется область, обозначенная pwszRealm .

[out] pbHexHash

Указатель на выходной буфер, в который возвращается хэш MD5 в шестнадцатеричном строковом формате. Длина этого буфера должна быть не менее 33 байт.

Возвращаемое значение

Возвращает значение TRUE в случае успешного выполнения или FALSE в противном случае.

Комментарии

После того как функция CreateMD5SSOHash успешно получает пароль Microsoft Passport для указанной учетной записи или области, она преобразует строку запроса и пароль из расширенных символов в многобайтовые (обычно 8-разрядные) символы, объединяет их и использует библиотеку RSA для создания md5-хэша из полученного ключа. Затем он преобразует хэш в строку с завершением NULL из 8-разрядных шестнадцатеричных цифр (с использованием строчных букв), которые помещаются в буфер, на который указывает параметр pbHexHash .

Таким образом, выходной буфер, на который указывает pbHexHash , должен быть достаточно длинным, чтобы принимать два байта для каждого из 16 байт хэша, а также завершающий символ NULL в общей сложности 33 байта.

Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из DllMain или конструкторов и деструкторов глобальных объектов.

Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для серверных реализаций или служб используйте службы Microsoft Windows HTTP (WinHTTP).
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winineti.h (включая Wininet.h)
Библиотека Wininet.lib
DLL Wininet.dll

См. также раздел

Обработка проверки подлинности

Функции WinINet