dll强签名的由来和做用

C# dll强签名介绍

前基本没有这个概念,直到有一天咱们的dll被反编译了,致使咱们的代码基本上被看到了,才想起来要保护dll的安全性,由于C#语言的在编译过程当中会产生中间语言致使dll很容易被反编译。暂且先不说如何加密,为了保证dll不被别人随便使用,就首先得对其进行强签名。安全

为何使用强名称签名:

经过签发具备强名称的程序集,您能够确保名称的全局惟一性。强名称还特别知足如下要求:
强名称依赖于惟一的密钥对来确保名称的惟一性。任何人都不会生成与您生成的相同的程序集名称,由于用一个私钥生成的程序集的名称与用其余私钥生成的程序集的名称不相同。
强名称保护程序集的版本沿袭。强名称能够确保没有人可以生成您的程序集的后续版本。用户能够确信,他们所加载的程序集的版本出自建立该版本(应用程序是用该版本生成的)的同一个发行者。
强名称提供可靠的完整性检查。经过 .NET 框架安全检查后,便可确信程序集的内容在生成后未被更改过。但请注意,强名称中或强名称自己并不暗含某一级别的信任,例如由数字签名和支持证书提供的信任。
在引用具备强名称的程序集时,您应该可以从中受益,例如版本控制和命名保护。若是此具备强名称的程序集之后引用了具备简单名称的程序集(后者没有这些好 处),则您将失去使用具备强名称的程序集所带来的好处,并依旧会产生 DLL 冲突。所以,具备强名称的程序集只能引用其余具备强名称的程序集。框架

这里有个介绍的也比较详细:http://blog.csdn.net/donjuan/article/details/3859136 加密

总结:就是给dll加一个惟一的标识,引用dll就是引用了一个公钥,而后clr进行身份验证后若是与以前保存在AssemblyInfo中的散列信息相同则经过。spa

相关文章
相关标签/搜索