.snk文件是用来做什么的?我知道它代表着Strongly Named Key(强命名密钥),但所有关于它究竟是什么和如何工作的解释都让我无法理解。
有没有简单易懂的解释关于强命名密钥的使用和工作原理?
.snk文件是用来做什么的?我知道它代表着Strongly Named Key(强命名密钥),但所有关于它究竟是什么和如何工作的解释都让我无法理解。
有没有简单易懂的解释关于强命名密钥的使用和工作原理?
文章 "The Secrets of Strong Naming (存档于 Wayback Machine)" 很好地解释了这些概念,附有图片。
.snk文件用于对程序集进行签名,以便能够将它们添加到全局程序集缓存(GAC)中。
.snk文件包含您的密钥的公共和私有令牌。当您想要使用该密钥对某些数据(或二进制文件)进行签名时,将在数据上计算一个校验和,然后使用私有令牌对其进行加密。然后将加密的校验和添加到数据中。任何人都可以使用您密钥的公共令牌解密校验和并将其与他们计算的校验和进行比较,以验证已签名的数据未被篡改。
您可以在 http://en.wikipedia.org/wiki/Public-key_cryptography 上了解更多关于公钥密码学的内容。