

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS Encryption SDK 適用於 .NET 的
<a name="dot-net"></a>

for AWS Encryption SDK .NET 是適用於以 C\# 和其他 .NET 程式設計語言撰寫應用程式的開發人員的用戶端加密程式庫。Windows、macOS 和 Linux 都提供支援。

**注意**  
 AWS Encryption SDK 適用於 .NET 的 4.0. AWS Encryption SDK 0 版偏離訊息規格。因此，4.0.0 版加密的訊息只能由 .NET AWS Encryption SDK 的 4.0.0 版或更新版本解密。任何其他程式設計語言實作無法解密它們。  
 AWS Encryption SDK 適用於 .NET 的 4.0.1 版會根據訊息規格寫入 AWS Encryption SDK 訊息，並可與其他程式設計語言實作互通。根據預設，4.0.1 版可以讀取 4.0.0 版加密的訊息。不過，如果您不想解密 4.0.0 版加密的訊息，您可以指定 [https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/Examples/NetV4_0_0Example.cs](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/Examples/NetV4_0_0Example.cs) 屬性，以防止用戶端讀取這些訊息。如需詳細資訊，請參閱 GitHub 上 aws-encryption-sdk 儲存庫中的 [v4.0.1 版本備註](https://github.com/aws/aws-encryption-sdk/releases/tag/v4.0.1)。

 AWS Encryption SDK for .NET 與 的一些其他程式設計語言實作有以下 AWS Encryption SDK 不同：
+ 不支援[資料金鑰快取](data-key-caching.md)
**注意**  
 AWS Encryption SDK 適用於 .NET 的 4.*x* 版支援[AWS KMS 階層式 keyring](use-hierarchical-keyring.md)，這是替代的密碼編譯資料快取解決方案。
+ 不支援串流資料
+ .NET AWS Encryption SDK 版 中[沒有記錄或堆疊追蹤](#dot-net-debugging) 
+ [需要 適用於 .NET 的 AWS SDK](#dot-net-install)

for AWS Encryption SDK .NET 包含 2.0.*x* 版和更新版本中引入的所有安全功能，以及 的其他語言實作 AWS Encryption SDK。不過，如果您使用 AWS Encryption SDK for .NET 來解密由 2.0.*x* 之前版本另一個語言實作所加密的資料 AWS Encryption SDK，您可能需要調整您的[承諾政策](concepts.md#commitment-policy)。如需詳細資訊，請參閱[如何設定您的承諾政策](migrate-commitment-policy.md#migrate-commitment-step1)。

 AWS Encryption SDK 適用於 .NET 的 是 [Dafny](https://github.com/dafny-lang/dafny/blob/master/README.md) AWS Encryption SDK 中的產品，這是一種正式的驗證語言，您可以在其中撰寫規格、實作它們的程式碼，以及測試它們的證明。結果是一個程式庫，可在架構中實作 的功能 AWS Encryption SDK ，以確保功能正確性。

**進一步了解**
+ 如需示範如何在 中設定選項的範例 AWS Encryption SDK，例如指定替代演算法套件、限制加密的資料金鑰，以及使用 AWS KMS 多區域金鑰，請參閱 [設定 AWS Encryption SDK](configure.md)。
+ 如需使用 AWS Encryption SDK 適用於 .NET 的 進行程式設計的詳細資訊，請參閱 GitHub 上 aws-encryption-sdk 儲存庫的[https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/)目錄。

**Topics**
+ [安裝和建置](#dot-net-install)
+ [除錯](#dot-net-debugging)
+ [範例](dot-net-examples.md)

## 安裝 AWS Encryption SDK 適用於 .NET 的
<a name="dot-net-install"></a>

 AWS Encryption SDK 適用於 .NET 的 可作為 NuGet 中的[https://www.nuget.org/packages/AWS.Cryptography.EncryptionSDK](https://www.nuget.org/packages/AWS.Cryptography.EncryptionSDK)套件使用。如需安裝和建置 AWS Encryption SDK for .NET 的詳細資訊，請參閱 `aws-encryption-sdk-net`儲存庫中的 [README.md](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/#readme) 檔案。

**3.x 版**  
 AWS Encryption SDK 適用於 .NET 的 3.*x* 版僅支援 Windows 上的 .NET Framework 4.5.2 – 4.8。它在所有支援的作業系統上支援 .NET Core 3.0\+ 和 .NET 5.0 及更新版本。

**4.x 版**  
 AWS Encryption SDK 適用於 .NET 的 4.*x* 版支援 .NET 6.0 和 .NET Framework net48 及更新版本。4.*x* 版需要適用於 .NET v3 的 AWS SDK。

**5.x 版**  
 AWS Encryption SDK 適用於 .NET 的 5.*x* 版支援 .NET 6.0 和 .NET Framework net48 及更新版本。5.*x* 版需要材質提供者程式庫 (MPL) 的 2.*x* 版，以及適用於 .NET v4 的 AWS SDK。

 適用於 .NET 的 SDK 即使您未使用 AWS Key Management Service (AWS KMS) 金鑰， AWS Encryption SDK 適用於 .NET 的 都需要 。它與 NuGet 套件一起安裝。不過，除非您使用 AWS KMS 金鑰，否則 AWS Encryption SDK 針對 .NET AWS 帳戶，不需要 、 AWS 憑證或與任何 AWS 服務的互動。如需設定 AWS 帳戶的說明，請參閱 [AWS Encryption SDK 搭配 使用 AWS KMS](getting-started.md)。

## 偵錯適用於 .NET AWS Encryption SDK 的
<a name="dot-net-debugging"></a>

 AWS Encryption SDK for .NET 不會產生任何日誌。for AWS Encryption SDK .NET 中的例外狀況會產生例外狀況訊息，但不會產生堆疊追蹤。

為了協助您偵錯，請務必在 中啟用記錄 適用於 .NET 的 SDK。的日誌和錯誤訊息 適用於 .NET 的 SDK 可協助您區分 中產生的錯誤 適用於 .NET 的 SDK 與 AWS Encryption SDK 適用於 .NET 的 中的錯誤。如需 適用於 .NET 的 SDK 記錄的說明，請參閱《 *適用於 .NET 的 AWS SDK 開發人員指南*》中的 [AWSLogging](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-config-other.html#config-setting-awslogging)。（若要查看主題，請展開**開啟以檢視 .NET Framework 內容**區段。)