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。
如果pbBinary是Null,則會忽略由 pbBinary所指向的DWORD。
[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 編碼資料的第一個區塊。
這些 ...
部分會被忽略,而且不需要相符。
如果剖析成功,則會在pdwFlags參數指向的DWORD中傳回dwFlags參數中傳遞的值。
請注意, CRYPT_STRING_BASE64REQUESTHEADER 或 CRYPT_STRING_BASE64X509CRLHEADER 的值並不表示找到要求標頭或 X.509憑證撤銷清單 , (CRL) 。
注意
wincrypt.h 標頭會將 CryptStringToBinary 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |