CryptBinaryToStringA 函式 (wincrypt.h)
CryptBinaryToString 函式會將位元組數位轉換成格式化字串。
語法
BOOL CryptBinaryToStringA(
[in] const BYTE *pbBinary,
[in] DWORD cbBinary,
[in] DWORD dwFlags,
[out, optional] LPSTR pszString,
[in, out] DWORD *pcchString
);
參數
[in] pbBinary
要轉換成字串之位元組陣列的指標。
[in] cbBinary
pbBinary 陣列中的項目數目。
[in] dwFlags
指定所產生格式化字串的格式。 此參數可以是下列其中一個值。
值 | 意義 |
---|---|
|
Base64,具有憑證開頭和結尾標頭。 |
|
Base64,不含標頭。 |
|
純二進位複本。 |
|
Base64,具有要求開頭和結束標頭。 |
|
僅限十六進位。 |
|
十六進位,顯示 ASCII 字元。 |
|
Base64,具有 X.509 CRL 開頭和結束標頭。 |
|
十六進位,顯示位址。 |
|
十六進位,顯示 ASCII 字元和位址。 |
|
原始十六進位字串。
Windows Server 2003 和 Windows XP: 不支援這個值。 |
|
Base64,不含標頭,並以 “-” 和 “/” 取代為 “_” 取代,如 RFC 4648 第 5 節中所定義。 |
|
強制執行 ASN.1 文字格式的嚴格譯碼。 某些 ASN.1 二進位 BLOB 可以有 BLOB 的前幾個位元組不正確地解譯為Base64文字。 在此情況下,會忽略其餘的文字。 使用此旗標來強制執行 BLOB 的完整譯碼。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援這個值。 |
除了上述值之外,還可以指定下列一或多個值來修改函式的行為。
[out, optional] pszString
接收已轉換字串之緩衝區的指標。 若要計算必須配置以保存傳回字串的字元數,請將此參數設定為 NULL。 函式會在pcchString所指向的值中放置必要的字元數,包括終止的NULL字元。
[in, out] pcchString
DWORD 變數的指標,其中包含 pszString 緩衝區的大小,以 TCHAR為單位。 如果 pszString 為 NULL,函式會計算傳回字串的長度, (包括 TCHARs 中終止的 null 字元) ,並在此參數中傳回它。 如果 pszString 不是 NULL 且夠大,函式會將二進位數據轉換成包含終止 Null 字元的指定字串格式,但 pcchString 會收到 TCHAR中的長度,不包括終止的 Null 字元。
傳回值
如果函式成功,函式會傳回非零 (TRUE) 。
如果函式失敗,它會傳回零 (FALSE) 。
備註
除了使用 CRYPT_STRING_BINARY 編碼之外,所有字串都會附加新的行序列。 根據預設,新行序列是CR/LF配對 (0x0D/0x0A) 。 如果 dwFlags 參數包含 CRYPT_STRING_NOCR 旗標,則新行序列會是 LF 字元 (0x0A) 。 如果 dwFlags 參數包含 CRYPT_STRING_NOCRLF 旗標,則字串中不會附加任何新的行順序。
注意
wincrypt.h 標頭會將 CryptBinaryToString 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |