共用方式為


對稱演算法範例

更新:2007 年 11 月

此範例會使用 RijndaelTripleDESCryptoServiceProvider 類別來實作對稱 (秘密金鑰) 加密,如密碼編譯概觀中所述。

若要取得範例及其安裝指示

  • 請執行下列其中一項或多項作業:

    • 按一下 [說明] 功能表上的 [範例]。

      讀我檔案會顯示範例的相關資訊。

    • 造訪 Visual Studio 2008 範例 網站 (英文)。您可以在此找到最新版的範例。

    • 在已安裝 Visual Studio 的電腦中尋找範例。根據預設,範例和讀我檔案會安裝在 drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。如果是 Visual Studio Express 版,則所有範例都能在線上找到。

如需詳細資訊,請參閱尋找範例檔案

安全性注意事項:

範例程式碼可說明整個概念,並顯示和此概念相關的程式碼。此程式碼可能不符合特定環境的安全性要求,您也不應該以範例所示的方法使用此程式碼。我們建議您新增安全性及錯誤處理程式碼,讓您的專案更安全完善。Microsoft 提供的程式碼未經修改,並且不對任何可能造成的後果負任何責任。

若要執行這個範例

  • 按 F5。

示範

SampleCrypto 類別會封裝加密運算法、Salt 和初始化向量 (IV),以及可定義一個已加密檔案的加密和解密常式。建構函式會採用一個可判斷加密型別的參數:Rijndael 或 TripleDES。類別 crpSym 中的對應欄位具有抽象型別 SymmetricAlgorithm。它會被設定為 Rijndael 類別或 TripleDESCryptoServiceProvider 類別的執行個體CreateSaltIVFile 方法會將 salt 和 IV 值儲存至 .dat 檔案。Decrypt 和 Encrypt 方法會處理在 SourceFileName 屬性中指定的原始程式檔。

當表單載入時,會建立一個 SampleCrypto 類別的執行個體。表單上的控制項會示範 SampleCrypto 類別的方法和屬性。若已核取 [Encrypt with Password] 控制項,則不會自動產生及設定金鑰,而是衍生自已經 "salt" 的密碼。此外,Salt 和初始化向量 (IV) 會持續以未加密方式保存至 .dat 檔案。利用這個方法,您可以看到如何安全地將文件傳送給他人:加密的文件可能會透過不安全的連線來傳送,而 .dat 檔案和密碼可以使用非對稱 (或公開金鑰) 加密安全地傳輸。這種型別的加密是最安全的加密形式,但是處理會花費較長的時間。這就是為什麼通常用於小型項目 (如秘密金鑰、Salt/IV 檔案或密碼) 的原因。

請參閱

概念

.NET Framework 密碼編譯模型

參考

TripleDESCryptoServiceProvider

Rijndael

SymmetricAlgorithm

Salt

IV