.snk 文件有什么用?Strongly Named Key,但是关于它是什么以及它如何工作的所有解释都超出了我的理解。

对于如何使用强命名密钥及其工作原理,是否有任何简单的解释?

答案

.snk 文件用于应用.NET 程序集的强名称

简单的文本名称、版本号和文化信息(如果提供)——加上公钥和数字签名。

SNK 包含唯一的密钥对 - 私钥和公钥,可用于确保程序集具有唯一的强名称。

稍后,当有人需要验证强名称程序集的完整性时,他们构建程序集内容的哈希值,并使用程序集的公钥来解密程序集附带的哈希值 - 如果两个哈希值匹配,则程序集验证通过。

能够以这种方式验证程序集非常重要,以确保没有人将程序集替换为会破坏整个应用程序的恶意程序集。

文章《强命名的秘密(存档于 Wayback Machine)"。用图片很好地更详细地解释了这些概念。

来自: stackoverflow.com