- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每个签名的 .NET 都有一个公钥 token (8 个字节)和一个公钥(128 个字节)。
两者有什么区别,为什么我们需要两个公共(public)“ key ”?
最佳答案
公钥 token 只是 公钥哈希 .这里为 info .
更新
Why we need public key?
Signing an assembly with a private key ensures that the holder of the corresponding public key produced the assembly. When the assembly is installed into the GAC, the system hashes the contents of the file containing the manifest and compares the hash value with the RSA digital signature value embedded within the PE file (after unsigning it with the public key). If the values are identical, the file's contents haven't been tampered with, and you know that you have the public key that corresponds to the publisher's private key. In addition, the system hashes the contents of the assembly's other files and compares the hash values with the hash values stored in the manifest file's FileDef table. If any of the hash values don't match, at least one of the assembly's files has been tampered with, and the assembly will fail to install into the GAC.
The size of public keys makes them difficult to work with. To make things easier for the developer (and for end users too), public key tokens were created. A public key token is a 64-bit hash of the public key. SN.exe's -tp switch shows the public key token that corresponds to the complete public key at the end of its output. Because public keys are such large numbers, and a single assembly might reference many assemblies, a large percentage of the resulting file's total size would be occupied with public key information. To conserve storage space, Microsoft hashes the public key and takes the last 8 bytes of the hashed value. These reduced public key values—known as public key tokens—are what are actually stored in an AssemblyRef table. In general, developers and end users will see public key token values much more frequently than full public key values. Note, however, that the CLR never uses public key tokens when making security or trust decisions because it is possible that several public keys could hash to a single public key token.
关于.net - PublicKeyToken 和公钥有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5486592/
每个签名的 .NET 都有一个公钥 token (8 个字节)和一个公钥(128 个字节)。 两者有什么区别,为什么我们需要两个公共(public)“ key ”? 最佳答案 公钥 token 只是
如何从 snk 文件中获取 PublicKeyToken?使用命令行工具。我想过使用sn.exe,但是,找不到合适的参数。 最佳答案 如果您想使用 sn.exe工具: sn -p yourkey.sn
如果我从我的项目 C# 文件夹中打开 Resources.resx,我会看到类似这样的内容: ..\Resources\picture.png;System.Drawing.Bitmap,
Could not load file or assembly 'NCrawler.GeckoProcessor, Version=3.0.0.0, Culture=neutral, PublicKe
我需要在我的 web.config 文件中重新创建一个如下所示的提供程序: 但是,我收到一个运行时错误,提示无法加载此程序集,我认为这是因为我的 PublicKey
我在一个遗留项目上工作,必须支持同一个 dll 的 8 个不同版本。我可以访问库源代码,因此我可以自己构建这些 dll。 dll 是强签名的,每个都有自己的版本号 3.6.0.0、3.7.0.1 等。
我在编译托管 DLL 项目时遇到问题。该解决方案由两个项目组成,第一个是用 C# 编写的 .NET DLL,另一个是直接引用 C# 项目的托管 C++ DLL。 这两个项目/DLL 都使用磁盘上的 s
我正在使用以下代码: AppDomain.CurrentDomain.AssemblyLoad += (sender, args) => { var token = args.LoadedAs
我正在尝试使用这篇博文中的建议获取针对 Asp.Net Identity 的瑞典语本地化错误消息:How to localize ASP.NET Identity UserName and Passw
我的 app.config 中有以下内容。 ... Fusion 日志记录告诉我它没有在 bin2 中查
希望我什至能正确地问我的问题。我在尝试序列化特定对象时遇到以下异常(我熟悉使用标准 [Serializable] 属性) A first chance exception of type 'Syste
我正在按照 2006 年 Microsoft .Net 类(class)工作簿中的说明进行其中一项练习。 (具体来说,这门类(class)是 MS2349B,我正在做模块 4 练习 2。)。这些练习似
{"Could not load file or assembly 'AssemblyName, PublicKeyToken=null' or one of its dependencies. Th
我们有一个 asp.net 4.0 项目,它使用几个依赖于 log4net 版本 1.2.10.0 的框架。今天我尝试包含一个依赖于 log4net 版本 1.2.11.0 的新框架,从那时起我就陷入
我正在使用 PRISM 和我在 CodePlex 中找到的新控件:WPF 属性网格 http://wpg.codeplex.com/ 当我测试 DEMO 时,一切进展顺利。 我还没有开始使用 PRIS
我向我的应用程序添加了一条 UPDATE 语句,该语句运行良好。它正确更新数据库,除了四个错误消息之外,我没有看到任何问题。这是什么意思? Error 1 Type Microsoft.Dat
是否可以从 GAC 中卸载所有具有特定 PublicKeyToken 的程序集? 我接受命令行(gacutil.exe 等)或通过 C# 的解决方案。 编辑: 仅供引用,我可以通过 Windows 资
我必须在我的项目中使用一些引用程序集 XXXXX 的 dll 文件。我现在在我的项目中有这个程序集的更新版本,但是当我运行我的项目时我得到错误:Could not load file or assem
使用来自 Docusign、Twilio 和 Auth0 的 API。所有 3 个都将 RestSharp.dll 作为依赖项。 如果我使用 Docusign 包中包含的 RestSharp.dll,
我有一个在开发环境中引用此程序集的应用程序: name="Microsoft.Data.SqlXml" culture="neutral" publicKeyToken="89845dcd8080cc
我是一名优秀的程序员,十分优秀!