Membuat fungsiMD5SSOHash (winineti.h)

Fungsi CreateMD5SSOHash mendapatkan kata sandi Microsoft Passport default untuk akun atau realm tertentu, membuat hash MD5 darinya menggunakan string tantangan karakter lebar tertentu, dan mengembalikan hasilnya sebagai string byte digit heksadesimal.

Sintaks

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

Parameter

[in] pszChallengeInfo

Arahkan ke string tantangan karakter lebar yang akan digunakan untuk hash MD5.

[in] pwszRealm

Penunjuk ke string yang menamai realm untuk mendapatkan kata sandi. Parameter ini diabaikan kecuali pwszTarget adalah NULL. Jika pwszTarget dan pwszRealm adalah NULL, realm default akan digunakan.

[in] pwszTarget

Penunjuk ke string yang menamai akun untuk mendapatkan kata sandi. Jika pwszTarget adalah NULL, realm yang ditunjukkan oleh pwszRealm digunakan.

[out] pbHexHash

Penunjuk ke buffer output tempat hash MD5 dikembalikan dalam format string heksa. Panjang buffer ini harus minimal 33 byte.

Nilai kembali

Mengembalikan TRUE jika berhasil, atau FALSE sebaliknya.

Keterangan

Setelah fungsi CreateMD5SSOHash berhasil mendapatkan kata sandi Microsoft Passport untuk akun atau realm yang ditentukan, fungsi ini mengonversi string tantangan dan kata sandi dari karakter luas ke karakter multi-byte (umumnya 8-bit), menggabungkannya, dan menggunakan pustaka RSA untuk menghasilkan hash MD5 dari kunci yang dihasilkan. Kemudian mengonversi hash menjadi string null-terminated dari digit heksadesimal 8-bit (menggunakan huruf kecil) yang menempatkannya di buffer yang ditunjukkan oleh parameter pbHexHash .

Oleh karena itu, buffer output yang diacu oleh pbHexHash harus cukup lama untuk menerima dua byte untuk masing-masing dari 16 byte hash, ditambah karakter null yang mengakhiri, dengan total 33 byte.

Seperti semua aspek lain dari Api WinINet, fungsi ini tidak dapat dipanggil dengan aman dari dalam DllMain atau konstruktor dan destruktor objek global.

Catatan WinINet tidak mendukung implementasi server. Selain itu, itu tidak boleh digunakan dari layanan. Untuk implementasi atau layanan server, gunakan Microsoft Windows HTTP Services (WinHTTP).
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winineti.h (termasuk Wininet.h)
Pustaka Wininet.lib
DLL Wininet.dll

Lihat juga

Menangani Autentikasi

Fungsi WinINet