對稱演算法範例
更新:2007 年 11 月
此範例會使用 Rijndael 和 TripleDESCryptoServiceProvider 類別來實作對稱 (秘密金鑰) 加密,如密碼編譯概觀中所述。
若要取得範例及其安裝指示
請執行下列其中一項或多項作業:
按一下 [說明] 功能表上的 [範例]。
讀我檔案會顯示範例的相關資訊。
造訪 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 檔案或密碼) 的原因。