PFXVerifyPassword 函数 (wincrypt.h)

PFXVerifyPassword 函数尝试将 BLOB 的外层解码为个人信息交换 (PFX) 数据包,并使用给定的密码对其进行解密。 不导入 BLOB 中的数据。

PFX 格式也称为 Public-Key 加密标准 #12 (PKCS #12) 格式。

语法

BOOL PFXVerifyPassword(
  [in] CRYPT_DATA_BLOB *pPFX,
  [in] LPCWSTR         szPassword,
  [in] DWORD           dwFlags
);

参数

[in] pPFX

指向 CRYPT_DATA_BLOB 结构的指针,函数将尝试将其解码为 PFX 数据包。

[in] szPassword

要检查的字符串密码。 要使此函数成功,此密码必须与用于加密数据包的密码完全相同。

如果将此值设置为空字符串或 NULL,此函数通常会尝试使用空字符串或 NULL 来解密 PFX BLOB 中嵌入的密码。

但是,从Windows 8和Windows Server 2012开始,如果在创建 PFX BLOB 时指定了 NULL 或空密码,并且应用程序还指定应将密码保护到 Active Directory (AD) 主体,则加密 API (CAPI) 随机生成密码,将其加密到 AD 主体,并将其嵌入 PFX BLOB 中。 然后 ,PFXVerifyPassword 函数将尝试使用指定的 AD 主体 (当前用户、计算机或 AD 组成员) 来解密密码。 有关保护 AD 主体的 PFX 的详细信息,请参阅 pvPara 参数和 PFXExportCertStoreEx 函数的 PKCS12_PROTECT_TO_DOMAIN_SIDS 标志。

使用完密码后,通过调用 SecureZeroMemory 函数从内存中清除密码。 有关保护密码的详细信息,请参阅 处理密码

[in] dwFlags

保留供将来使用。

返回值

如果密码显示正确,则函数返回 TRUE ;否则返回 FALSE

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll