Функция 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 или конструкторов и деструкторов глобальных объектов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winineti.h (включая Wininet.h) |
Библиотека | Wininet.lib |
DLL | Wininet.dll |