共用方式為


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

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

意義
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 節中所定義。
CRYPT_STRING_STRICT
0x20000000
強制執行 ASN.1 文字格式的嚴格譯碼。 某些 ASN.1 二進位 BLOB 可以有 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 緩衝區的大小,以 TCHAR為單位。 如果 pszStringNULL,函式會計算傳回字串的長度, (包括 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

另請參閱

CryptStringToBinary