共用方式為


NCryptUnprotectSecret 函式 (ncryptprotect.h)

NCryptUnprotectSecret 函式會將數據解密至指定的保護描述元。 呼叫 NCryptProtectSecret 來加密數據。

語法

SECURITY_STATUS NCryptUnprotectSecret(
  [out, optional] NCRYPT_DESCRIPTOR_HANDLE *phDescriptor,
  [in]            DWORD                    dwFlags,
  [in]            const BYTE               *pbProtectedBlob,
                  ULONG                    cbProtectedBlob,
  [in, optional]  const NCRYPT_ALLOC_PARA  *pMemPara,
  [in, optional]  HWND                     hWnd,
  [out]           BYTE                     **ppbData,
  [out]           ULONG                    *pcbData
);

參數

[out, optional] phDescriptor

保護描述項句柄的指標。

[in] dwFlags

旗標可以是零或位 OR 的下列值。

意義
NCRYPT_SILENT_FLAG
要求金鑰服務提供者未顯示使用者介面。
NCRYPT_UNPROTECT_NO_DECRYPT
僅譯碼受保護數據 Blob 的標頭。 不會進行實際的解密。

[in] pbProtectedBlob

包含要解密之數據的位元組數位指標。

cbProtectedBlob

pbProtectedBlob 參數所指向之陣列中的位元組數目。

[in, optional] pMemPara

可用來指定自定義記憶體管理功能 之NCRYPT_ALLOC_PARA 結構的指標。 如果您將此自變數設定為 NULL,LocalAlloc 函式會在內部用來配置記憶體,而且您的應用程式必須呼叫 LocalFree 來釋放 ppbData 參數所指向的記憶體。

[in, optional] hWnd

使用者介面的父視窗句柄,如果有的話,就會顯示。

[out] ppbData

接收解密數據的指標的變數位址。

[out] pcbData

ULONG 變數的指標,其中包含ppbData變數所指向之解密數據的位元元組大小。

傳回值

傳回狀態代碼,指出函式的成功或失敗。 可能的傳回碼包括但不限於下列各項。

傳回碼 Description
ERROR_SUCCESS
函式成功。
NTE_BAD_FLAGS
dwFlags 參數只能包含 NCRYPT_SILENT_FLAGNCRYPT_UNPROTECT_NO_DECRYPT
NTE_INVALID_PARAMETER
pbProtectedBlobppbDatahsData 參數不能是 NULL

cbData 參數不能小於一個。

備註

使用 NCryptUnprotectSecret 函式來解密密鑰、金鑰數據和密碼。 使用 NCryptStreamOpenToUnprotectNCryptStreamUpdate 函式來解密較大的訊息。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平台 Windows
標頭 ncryptprotect.h
程式庫 NCrypt.lib
Dll NCrypt.dll

另請參閱

CNG DPAPI 函式

NCryptProtectSecret