共用方式為


HOW TO:建置和執行 CNG 範例

本主題描述 Cryptography Next Generation (CNG) 安全通訊範例的檔案架構,並說明如何建置和執行該範例。

若要建置 CNG 範例,您要建立 3 個主控台可執行檔。您可以同時執行這些可執行檔,以了解這個互動式的複合範例。

CNG 範例是以 C# 撰寫的,需要 Visual Studio 2008 (含) 以後版本。

建置範例

CNG 範例包含 3 個 Visual Studio 專案: 

  • Alice

  • Bob

  • Mallory

這個範例包含 6 個檔案,您可以從下列主題進行檢視和複製:

每個專案所擁有的專屬 .cs 檔案 (Alice.cs、Bob.cs 和 Mallory.cs) 中包含專案專用的程式碼。這 3 個專案會共用 Utilities.cs、ChannelManager.cs 和 Communicator.cs 檔案。後面 3 個檔案是直接加入在 Alice 專案中,並 (透過檔案連結) 間接加入 Bob 和 Mallory 專案。

若要建置 Alice、Bob 和 Mallory 專案

  1. 啟動 Visual Studio。

  2. 在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。

    [新增專案] 對話方塊隨即出現。

  3. 按一下 [專案類型] 窗格中的 [Visual C#]。

  4. 按一下 [範本] 窗格中的 [主控台應用程式]。

  5. 在 [名稱] 方塊中,輸入 Alice。

  6. 在 [位置] 方塊中,輸入您想要儲存 Alice 專案的位置。

  7. 按一下 [確定]。

  8. 複製 Alice 原始程式碼到名為 Alice.cs 的檔案中,並儲存在 Alice 專案目錄中。在收到提示時,確認您要取代預設的 Alice.cs 檔案。

  9. ChannelManagerCommunicatorUtilities 原始程式碼複製到名為 ChannelManager.cs、Communicator.cs 和 Utilities.cs 的個別檔案中,並儲存在 Alice 專案目錄中。遵循下列步驟,將這 3 個檔案加入至 Alice 專案:

    1. 按一下 [檢視] 功能表上的 [方案總管]。

    2. 以滑鼠右鍵按一下 [方案總管] 視窗中的 [Alice] 資料夾,指向 [加入],然後按一下 [現有項目]。

      [加入現有項目] 對話方塊隨即開啟,並顯示 Alice 專案目錄。

    3. 選取 ChannelManager.cs、Communicator.cs 和 Utilities.cs 檔案,然後再按一下 [加入]。

  10. 針對 Bob 和 Mallory 專案重複步驟 2-8。確認是將 Bob 原始程式碼儲存至 Bob 專案目錄,並將 Mallory 原始程式碼儲存至 Mallory 專案目錄。

  11. 針對 Bob 和 Mallory 專案重複步驟 9。但是在步驟 9.c 中,不要按 [ 加入],而是按一下 [加入] 按鈕旁的箭號,然後再按一下 [加入做為連結]。

  12. 遵循下列步驟,設定 Bob 和 Mallory 專案的輸出目錄:

    1. 按一下 [專案] 功能表中的 [屬性],然後按一下 [建置] 索引標籤。

    2. 將輸出路徑設為 Alice 專案所使用的組建位置。這個位置或許是步驟 6 所選取的 Alice 專案目錄中的 \bin\Debug\。

  13. 若要建置每個專案,按一下 [建置] 功能表上的 [建置方案]。

  14. 確認所有專案的建置都沒有錯誤,以及 Alice 專案目錄中是否存在有可執行檔 Alice.exe、Bob.exe 和 Mallory.exe。

執行範例

您可以從 Visual Studio 執行範例,或是將範例做為獨立應用程式執行。這些方法會產生相同的輸出。

若要執行 CNG 範例

  1. 若要從 Visual Studio 執行,按兩下這 3 個專案的 .sln 檔案 Alice.sln、Bob.sln 和 Mallory.sln,開啟 3 個 Visual Studio 執行個體。在 Alice 專案中,按一下 [偵錯] 功能表上的 [開始偵錯]。針對 Bob 和 Mallory 專案重複進行。

    -或-

    若要將範例做為獨立應用程式執行,將這 3 個專案的可執行檔 (.exe) 複製到單一目錄。按兩下 Windows 檔案總管中的 Alice.exe。Alice 會透過內建的自動載入器呼叫 Bob 和 Mallory 可執行檔。

    注意事項注意事項

    您也可以藉由在命令列巡覽到包含這 3 個可執行檔的目錄並輸入 alice.exe,即可從主控台視窗執行 Alice 可執行檔。

    執行這 3 個可執行檔時,會出現 3 個主控台視窗。視窗的標題會反映專案名稱,且會調整好這些視窗的大小和位置,讓您可以在 1280 x 1024 監視器上輕鬆瀏覽訊息流動。您可以移動主控台視窗或調整其大小,以達到最佳顯示效果。

  2. 當 Alice 視窗中出現安全性版本的提示時,輸入 1 到 5 之間的數字。對於第一個測試,請輸入 1。

    這些數字對應到 CNG 範例概觀中討論的 5 個軟體版本。

  3. 版本 2 到 5 會提示您指示是否要提供詳細資訊輸出。輸入 n 表示一般模式,或輸入 y 表示詳細資訊模式。

    • 一般模式只會顯示純文字訊息。

    • 詳細資訊模式則會顯示純文字訊息、數位簽章金鑰、密碼編譯金鑰、初始化向量、密碼文字和數位簽章。

  4. 在出現提示詢問您是否要停用 Mallory 時,輸入 n 表示不要,或輸入 y 表示要停用。

    如果停用 Mallory,該視窗就不會收到任何訊息並保持在閒置狀態。Alice 和 Bob 會繼續通訊,而不會被 Mallory 攔截訊息。

  5. 繼續看 Alice 和 Bob 間的腳本對談。

    對談的詳細內容是由步驟 2 所選取的版本號碼決定。每個視窗建立的訊息迴圈會在傳送和接收模式間輪流交換。傳送模式是以 :> 提示符號表示。接收模式是以空白行表示。當 Alice 處於傳送模式時,Bob 就在接收模式。當 Bob 收到訊息時,就會切換為傳送模式,而 Alice 就切換到接收模式。

    仔細留意 Alice 和 Bob 的訊息。Alice 傳給 Bob 的第二個訊息和 Bob 給 Alice 的回覆,已經由 Mallory 變更過。

    在腳本對談結束後,Alice 會詢問您是否要與 Bob 交談。

  6. 如果您想要傳送自己的訊息,請在提示符號處:

    1. 輸入訊息並按 ENTER。Alice 會將該訊息傳送給 Bob。

    2. 將焦點設在 [Bob] 視窗,輸入訊息並按 ENTER。Bob 會將該訊息傳送給 Alice。

    3. 重複前兩個步驟,以傳送其他訊息。

  7. 當您想要結束時,在 [Alice] 或 [Bob] 視窗處於傳送模式 (以 :> 提示符號表示) 時按 ENTER。

    這 3 個視窗就會重設為步驟 2 中的狀態。

    注意事項注意事項

    如果您藉由按下 [關閉] 按鈕關閉視窗,則這些視窗會停止回應。您必須關閉任何開啟中的視窗,再重新啟動範例。

  8. 使用不同的選項執行範例。如果選取詳細資訊模式和版本 2、3、4 或 5,您可以比較 Alice 傳送的加密字串和 Bob 收到的加密字串。在沒有啟用 Mallory 的情況下,這些字串應該是完全相符的。不過請注意,在 ASCII 字元集中超過 128 的字元,會因為無法顯示而以問號表示 (?)。

請參閱

概念

Cryptography Next Generation (CNG) 安全通訊範例

密碼編譯服務