程序集强名称(Strong Name)延迟签名与签名

一、原理

二、延迟签名与签名操作

假设正在开发一个类库 YourLibrary.dll

1)生成公钥/私钥对
  sn -k Your.snk
2)提取出公钥并存放在public.snk中。public.snk的目的是为了便于分发;在Your.snk中的私钥是无法提取出来的
  sn -p Your.snk public.snk
3)对程序集进行延迟签名
  csc /keyfile:public.snk /delaysign /t:library YourLibrary.cs
4)让CLR信任程序集的内容,不执行签名验证
  sn -Vr YourLibrary.dll
这个命令会在注册表中添加相应项,所以对同一程序集只需执行一次。至此  YourLibrary.dll就可以安装到GAC中
5)在开发过程,开发人员可以引用此程序集,就好像强命名程序集一样
6)在最终部署前,一定要用私钥进行签名。否则,其他人可以用公钥做一个相同签名的程序集,替换掉这个程序集。
  sn -R YourLibrary.dll Your.snk
7)打开验证,在4)中的注册表项会被相应移除
  sn -Vu YourLibrary.dll

 

posted @ 2012-12-14 16:07  protorock  阅读(1864)  评论(2编辑  收藏  举报