共用方式為


CryptBinaryToStringW 函式 (wincrypt.h)

CryptBinaryToString 函式會將位元組數位轉換成格式化字串。

語法

BOOL CryptBinaryToStringW(
  [in]            const BYTE *pbBinary,
  [in]            DWORD      cbBinary,
  [in]            DWORD      dwFlags,
  [out, optional] LPWSTR     pszString,
  [in, out]       DWORD      *pcchString
);

參數

[in] pbBinary

要轉換成字串之位元組陣列的指標。

[in] cbBinary

pbBinary 陣列中的項目數目。

[in] dwFlags

指定所產生格式化字串的格式。 此參數可以是下列其中一個值。

價值 意義
CRYPT_STRING_BASE64HEADER
0x00000000
Base64,具有憑證開頭和結尾標頭。
CRYPT_STRING_BASE64
0x00000001
Base64,不含標頭。
CRYPT_STRING_BINARY
0x00000002
純二進位複本。
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
Base64,具有要求開頭和結尾標頭。
CRYPT_STRING_HEX
0x00000004
僅限十六進位。
CRYPT_STRING_HEXASCII
0x00000005
十六進位,ASCII 字元顯示。
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
Base64,X.509 CRL 開頭和結尾標頭。
CRYPT_STRING_HEXADDR
0x0000000a
十六進位,並顯示位址。
CRYPT_STRING_HEXASCIIADDR
0x0000000b
十六進位,並顯示 ASCII 字元和位址。
CRYPT_STRING_HEXRAW
0x0000000c
原始十六進位字串。

Windows Server 2003 和 Windows XP:不支援此值。

CRYPT_STRING_BASE64URI
0x0000000d
Base64,不含標頭,並以 “-” 和 “/” 取代為 “_” 取代,如 RFC 4648 第 5 節 5 中所定義。
CRYPT_STRING_STRICT
0x20000000
強制嚴格譯碼 ASN.1 文字格式。 某些 ASN.1 二進位 BLOBS 可以將 BLOB 的前幾個位元組錯誤解譯為 Base64 文字。 在此情況下,會忽略其餘的文字。 使用此旗標來強制執行 BLOB 的完整譯碼。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支援此值。

 

除了上述值之外,還可以指定下列一或多個值來修改函式的行為。

價值 意義
CRYPT_STRING_NOCRLF
0x40000000
請勿將任何新的行字元附加至編碼的字串。 默認行為是使用歸位字元/換行字元 (CR/LF) 組 (0x0D/0x0A) 來表示新行。

Windows Server 2003 和 Windows XP:不支援此值。

CRYPT_STRING_NOCR
0x80000000
只針對新行使用換行字元 (LF) 字元 (0x0A)。 默認行為是使用CR/LF組 (0x0D/0x0A) 來表示新行。

[out, optional] pszString

接收已轉換字串之緩衝區的指標。 若要計算必須設定以儲存傳回字串的字元數,請將此參數設定為 NULL。 函式會將必要的字元數放在pcchString所指向的值中,包括終止 NULL 字元。

[in, out] pcchString

DWORD 變數的指標,其中包含 pszString 緩衝區 TCHARs 的大小。 如果 pszString NULL,則函式會計算 TCHAR中傳回 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 標頭會根據 UNICODE 預處理器常數的定義,將 CryptBinaryToString 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平臺 窗戶
標頭 wincrypt.h
連結庫 Crypt32.lib
DLL Crypt32.dll

另請參閱

CryptStringToBinary