PublicKeyToken 和公钥有什么区别?
每个签名的 .NET 都有一个公钥令牌(8 字节)和一个公钥(128 字节)。 两者有什么区别,为什么我们需要两个公钥?
Each signed .NET has both a public key token (8 byte) and a public key (128 bytes).
What is the difference between the 2, and why do we need two public "keys"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
公钥令牌只是公钥的散列。这里有信息。
更新
由于程序集可以被签名,并且签名的程序集将包含公钥。加载 DLL 时,.NET 将使用公钥根据签名验证程序集。签名只能使用私钥生成,而公钥本身可用于验证签名。
此过程可确保组装不被篡改。
从 CLR 通过 C#:
更新 2
为什么需要公钥令牌?由于公钥太大而无法使用(再次来自 CLR Visa C#):
Public Key token is just the hash of the public key. Here for info.
UPDATE
Since assembly can be signed and signed assemblies will contain the public key. When loading DLL .NET will use the public key to validate the assembly against the signature. Signature can be only generated using the private key while public key itself can be used for validating the signature.
This process makes sure assembly is not tampered with.
From CLR via C#:
UPDATE 2
Why public key token needed? Since public key is too big to work with so (Again from CLR visa C#):