CryptStringToBinaryA 函数 (wincrypt.h)
CryptStringToBinary 函数将格式化字符串转换为字节数组。
语法
BOOL CryptStringToBinaryA(
[in] LPCSTR pszString,
[in] DWORD cchString,
[in] DWORD dwFlags,
[in] BYTE *pbBinary,
[in, out] DWORD *pcbBinary,
[out] DWORD *pdwSkip,
[out] DWORD *pdwFlags
);
参数
[in] pszString
指向包含要转换的格式字符串的字符串的指针。
[in] cchString
要转换的格式化字符串的字符数,不包括终止 NULL 字符。 如果此参数为零,则 pszString 被视为以 null 结尾的字符串。
[in] dwFlags
指示要转换的字符串的格式。 这可以是以下值之一。
价值 | 意义 |
---|---|
|
窗体“-----BEGIN ...-----”和“-----END ...-----”的行之间的 Base64。 请参阅下面的“备注”。 |
|
Base64,没有标头。 |
|
纯二进制副本。 |
|
窗体“-----BEGIN ...-----”和“-----END ...-----”的行之间的 Base64。 请参阅下面的“备注”。 |
|
仅十六进制格式。 |
|
ASCII 字符显示的十六进制格式。 |
|
按顺序尝试以下各项:
|
|
按顺序尝试以下各项:
|
|
按顺序尝试以下各项:
|
|
窗体“-----BEGIN ...-----”和“-----END ...-----”的行之间的 Base64。 请参阅下面的“备注”。 |
|
十六进制,显示地址。 |
|
十六进制,显示 ASCII 字符和地址。 |
|
原始十六进制字符串。
Windows Server 2003 和 Windows XP:不支持 此值。 |
|
设置 Base64 数据的此标志以指定二进制数据的末尾仅包含空格,最多三个等于“=”符号。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。 |
[in] pbBinary
指向接收返回字节序列的缓冲区的指针。 如果此参数 NULL,则该函数将计算所需的缓冲区长度,并返回 指向的 DWORD 中所需内存的大小(以字节为单位)。
[in, out] pcbBinary
指向 DWORD 变量的指针,该变量在条目上包含 pbBinary 缓冲区的大小(以字节为单位)。 函数返回后,此变量包含复制到缓冲区的字节数。 如果此值不足以包含所有数据,函数将失败,GetLastError 返回 ERROR_MORE_DATA。
如果 pbBinaryNULL,则忽略 指向的 D WORD。
[out] pdwSkip
指向 DWORD 值的指针,该值接收跳过的字符数以到达 -----BEGIN ...-----
标头的开头。
如果没有标头,则 DWORD 设置为零。
此参数是可选的,如果需要,则可以 NULL。
[out] pdwFlags
指向 DWORD 值的指针,该值接收转换中实际使用的标志。 这些标志与用于 dwFlags 参数的标志相同。 在许多情况下,这些标志与 dwFlags 参数中传递的标志相同。 如果 dwFlags 包含以下标志之一,则此值将收到一个指示字符串实际格式的标志。 此参数是可选的,如果需要,则可以 NULL。
返回值
如果函数成功,则返回值为非零(TRUE)。
如果函数失败,则返回值为零(FALSE)。
言论
CRYPT_STRING_BASE64HEADER、CRYPT_STRING_BASE64REQUESTHEADER和 CRYPT_STRING_BASE64X509CRLHEADER 标志都受到此函数的相同处理:它们尝试分析表单 -----BEGIN ...-----
和 -----END ...-----
行之间的第一个 base64 编码数据的块。
将忽略 ...
部分,它们不需要匹配。
如果分析成功,则 dwFlags 参数中传递的值将返回由 pdwFlags 参数指向的 DWORD。
请注意,CRYPT_STRING_BASE64REQUESTHEADER 或 CRYPT_STRING_BASE64X509CRLHEADER 的值并不意味着找到请求标头或 X.509证书吊销列表(CRL)。
注意
wincrypt.h 标头将 CryptStringToBinary 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [桌面应用 |UWP 应用] |
支持的最低服务器 | Windows Server 2003 [桌面应用 |UWP 应用] |
目标平台 | 窗户 |
标头 | wincrypt.h |
库 | Crypt32.lib |
DLL | Crypt32.dll |