Share via


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_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緩衝區的大小,以TCHARs 為單位。 如果 pszStringNull,函式會計算傳回字串的長度 (包括 TCHARs 中終止的 null 字元) ,並在此參數中傳回它。 如果 pszString 不是 Null 且夠大,則函式會將二進位資料轉換成指定的字串格式,包括終止 Null 字元,但 pcchString 會接收 TCHARs 中的長度,不包括終止 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 應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

CryptStringToBinary