Dot-Net
我似乎無法理解這個 .NET 程序集簽名的事情
好的,我一定很笨,因為我已經讀過這個: http ://www.csharp411.com/net-assembly-faq-part-3-strong-names-and-signing/
而且我還是不明白…
假設我打開項目的屬性並轉到“簽名”選項卡,然後選中“簽署程序集”並使用密碼生成一個新程序集。創建了一個帶有 .pfx 副檔名的強名稱密鑰文件,包括公鑰和私鑰,VS 將在編譯時對我的程序集進行數字簽名,對嗎?
私鑰呢?不應該是私有的,而我,開發者,是唯一擁有它的人嗎?程序集不應該只用公鑰簽名嗎?
誰能給我解釋一下?基本上,我想簽署我的項目程序集並允許我的使用者檢查程序集是否真的由我開發,而我是唯一保留私鑰的人(我認為我應該這樣做)。
你基本上是對的。
您創建一個密鑰對並將其用於簽名。但不要發送 pfx(或 snk)文件,它包含公鑰和私鑰,應妥善保管。
公鑰作為簽名過程的一部分添加到程序集中。
當程序集載入到應用程序中時,會檢查此簽名。最終使用者還可以在 GAC 中檢查公鑰令牌,但這並不是一個真正方便的過程。你必須以某種方式告訴他們你的公鑰令牌。
整個事情的可靠程度取決於您將密鑰文件保密的能力。
另請注意,理想情況下,每個公司應該只有 1 個密鑰。如果您擔心與(許多)同事共享它,請調查延遲簽名。