共用方式為


密碼學

本文概述了 WinUI 應用程式可用的密碼學功能。 關於特定任務的詳細資訊,請參閱本文末尾的表格。

術語

以下術語在密碼學與公鑰基礎建設(PKI)中常被使用。

字詞 說明
加密 利用密碼學演算法與金鑰轉換資料的過程。 轉換後的資料只能透過使用相同演算法及相同(對稱)或相關(公開)金鑰來恢復。
解密 將加密資料恢復原始形式的過程。
明文 最初指的是未加密的簡訊。 目前指的是任何未加密的資料。
密文 最初指的是加密後的文字訊息,因此無法閱讀。 目前指的是任何加密資料。
雜湊 將可變長度資料轉換為固定長度(通常較小)的數值的過程。 透過比較雜湊值,你可以合理確信兩個或多個資料是相同的。
Signature 數位資料的加密雜湊通常用於驗證資料發送者或驗證資料傳輸過程中未被竄改。
演算法 資料加密的逐步流程。
鑰匙 一個隨機或偽隨機數,作為密碼學演算法的輸入,用以加密和解密資料。
對稱密鑰密碼學 密碼學中,加密與解密使用相同的金鑰。 這也被稱為秘密金鑰密碼學。
非對稱金鑰密碼學 密碼學中,加密與解密使用不同但數學相關性的金鑰。 這也被稱為公開金鑰密碼學。
編碼 將數位訊息(包括憑證)編碼以跨網路傳輸的過程。
演算法提供者 一個實作密碼演算法的 DLL。
金鑰儲存提供者 一個用來存放關鍵材料的容器。 目前,金鑰可以儲存在軟體、智慧卡或受信任平台模組(TPM)中。
X.509 憑證 數位文件,通常由認證機構發布,用以向其他相關方驗證個人、系統或實體的身份。

 

命名空間

以下命名空間可供應用程式使用。

Windows.Security.Cryptography

包含 CryptographicBuffer 類別及靜態方法,使您能:

  • 將資料轉換到字串與字串之間
  • 將資料轉換至及從位元組陣列
  • 為網路傳輸編碼訊息
  • 傳輸後解碼訊息

Windows.Security.Cryptography.Certificates

包含類別、介面及列舉類型,使你能夠:

  • 建立憑證請求
  • 安裝憑證簽署回應
  • 匯入 PFX 檔案中的憑證
  • 指定並檢索憑證請求屬性

Windows.Security.Cryptography.Core

包含類別與列舉類型,使您能夠:

  • 加密與解密資料
  • 哈希資料
  • 簽署資料並驗證簽名
  • 建立、匯入與匯出金鑰
  • 與非對稱金鑰演算法提供者合作
  • 與對稱金鑰算法提供者合作
  • 與雜湊演算法提供者合作
  • 與機器驗證碼(MAC)演算法提供者合作
  • 與密鑰導出演算法提供者合作

Windows.Security.Cryptography.DataProtection

包含可使您能夠進行的類別:

  • 非同步加密與解密靜態資料
  • 非同步加密與解密資料串流

加密與公鑰基礎設施(PKI)應用能力

應用程式所提供的簡化應用程式介面,使以下密碼學與公鑰基礎設施(PKI)功能得以實現。

密碼學支援

你可以執行以下密碼學任務。 欲了解更多資訊,請參閱 Windows.Security.Cryptography.Core 命名空間。

  • 建立對稱鍵
  • 執行對稱加密
  • 建立非對稱鍵
  • 執行非對稱加密
  • 基於密碼的金鑰推導
  • 建立訊息認證碼(MAC)
  • 雜湊內容
  • 數位簽署内容

SDK 也提供簡化的基於密碼的資料保護介面。 你可以用它來執行以下任務。 欲了解更多資訊,請參閱 Windows.Security.Cryptography.DataProtection 命名空間。

  • 靜態資料的非同步保護
  • 資料串流的非同步保護

編碼支援

應用程式可以編碼加密資料以跨網路傳輸,並解碼來自網路來源的資料。 欲了解更多資訊,請參閱 Windows.Security.Cryptography 命名空間中可用的靜態方法。

PKI 支援

應用程式可以執行以下 PKI 任務。 欲了解更多資訊,請參閱 Windows.Security.Cryptography.Certificates 命名空間。

  • 建立憑證
  • 建立自我簽署憑證
  • 安裝憑證簽署回應
  • 匯入 PFX 格式的憑證
  • 使用智慧卡憑證與金鑰(sharedUserCertificates 功能集)
  • 使用使用者 MY 儲存庫(sharedUserCertificates 能力集)中的憑證

此外,你也可以利用清單執行以下操作:

  • 指定每個應用程式的受信任根憑證
  • 指定每個應用程式的點對點受信任憑證
  • 明確停用系統信任機制的繼承
  • 請明確認證的選擇標準
    • 僅限硬體憑證
    • 透過特定發行者串聯的憑證
    • 自動從應用程式商店選擇憑證

詳細條目

以下文章提供更多關於安全情境的細節:

主題 說明
Certificates 本文討論 WinUI 應用程式中憑證的使用。 數位憑證用於公開金鑰密碼學中,將公開金鑰綁定於個人、電腦或組織。 綁定身份最常用來將一個實體與另一個實體進行驗證。 例如,憑證常用於將網頁伺服器認證給使用者,以及將使用者認證給網頁伺服器。 你可以建立憑證請求,並安裝或匯入已核發的憑證。 你也可以在證書階層中註冊證書。
密碼金鑰 本文說明如何使用標準金鑰推導函數來推導金鑰,以及如何使用對稱與非對稱金鑰加密內容。
數據保護 本文說明如何在 Windows.Security.Cryptography.DataProtection 命名空間中使用 DataProtectionProvider 類別,在 WinUI 應用程式中加密與解密數位資料。
MAC、雜湊值與簽章 本文討論如何在 WinUI 應用程式中使用訊息認證碼(MAC)、雜湊值與簽名來偵測訊息竄改。
密碼學出口限制 利用這些資訊判斷你的應用程式是否以某種方式使用加密技術,導致它無法被列入 Microsoft Store。
常見密碼學任務 這些文章提供了常見 WinUI 密碼學任務的範例程式碼,例如建立隨機數、比較緩衝區、字串與二進位資料間的轉換、位元組陣列的複製與複製,以及資料的編碼與解碼。