给共享程序集延迟签名

为了安全,公司一般只有少数人能访问到私钥。但是在开发和测试程序集时,访问这些受到严密保护的私钥可能有些费事儿。有鉴于此,.NET Framework提供了对延迟签名(delayed signing)的支持,这个技术有时也称为部分签名(partial signing)。延迟签名允许你只用公司的公钥来生成一个程序

集,暂时不用私钥。等在发布之前,在用私钥进行签名

1,如果使用(提取密钥文件的公钥)公钥的话,必须要延迟签名,否则无法编译
2,使用延迟签名,不能直接安装到GAC,必须关闭该程序集的验证功能
3,在发布之前,使用私钥重新签名
4,打开此程序集的验证功能

步骤:

1,创建一个类库项目

2,使用强命使用工具(sn)创建一个公钥/私钥对(使用vs自带的命令工具)

sn -k mykey.snk

3,提取公钥(mykeypub.snk给开发人员用)

sn -p mykey.snk mykeypub.snk

4,关闭签名的验证功能

sn -Vr Timber.DelaySign.dll

5,现在可以把程序集安装到GAC了

gacutil -i Timber.DelaySign.dll

6,当程序集设计好之后,准备部署的时候,需要重新签名(用私钥签名)

sn -R Timber.DelaySign.dll mykey.snk

7,别忘了打开开启验证

sn -Vu Timber.DelaySign.dll

时间: 2024-08-08 10:42:33

给共享程序集延迟签名的相关文章

强命名程序集,签名,延迟签名

强命名程序集 如果一个程序集有一个唯一的标记,那么这个程序集就可以叫做强命名程序集.在.NET框架中是通过公钥/私钥加密来产生这个唯一标记的.一个强命名程序集包含四个唯一标志程序集的特性:文件名(没有扩展名),版本号,语言文化信息(如果有的话),公有秘钥. 这些信息存储在程序集的清单(manifest)中.清单包含了程序集的元数据,并嵌入在程序集的某个文件中.下面的字符串标识了二个不同的程序集文件: “MyType, Version=1.0.1.0,Culture=neutral, Public

程序集延迟签名-学习笔记

背景:为了防止私钥泄露,公司里只有少数几个人才能访问到私钥.其他同事开发时,也需要编译,但不又能给他们密钥,我们就需要使用延迟签名技术了. 1.       创建密钥对 sn -k mykeyfile.pfx 无密码保护,该文件需要安全保管 2.       安装密钥对到于强名称 CSP 中容器 sn -i mykeyfile.pfx mykeycontainer 3.       提取公钥文件 sn -p mykeyfile.pfx mykeyfile.pub 4.       显示公钥标记

.net程序集强名称签名实践

引用:  http://www.cnblogs.com/cpcpc/archive/2011/01/17/2123086.html 强名称是由程序集的标识加上公钥和数字签名组成的.其中,程序集的标识包括简单文本名称.版本号和区域性信息(如果提供的话).强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的.Microsoft? Visual Studio? .NET 和在 .NET Framework SDK 中提供的其他开发工具能够

C# 带签名dll破解

首先申明,本文只是从技术的角度来分析下怎样破解带签名的C#写的dll文件.大家如有遇到收费的软件或类库还是应该去购买正版,程序员何苦为难程序员呢. 不带签名的破解 不带签名的dll文件的破解很简单,通常有下面三个步骤: 1. 使用反编译工具对dll文件进行反编译,找到校验过期的相关代码,反编译工具可以使用ILSpy或Reflector; 2. 使用ildasm.exe工具将dll导出成il文本文件,在该文件中找到相关的代码进行修改: 3. 使用ildasm.exe工具将修改后的il文件编译成dl

.Net 程序集 签名工具sn.exe 密钥对SNK文件

.Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法 (本文是从别人那里转来的,感觉说得很好就留了.感谢原作者!) .Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法 阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集进行反编译一毛钱关系都没有. 2.它很讨厌人们把它和加密联系在一起. 我再说说它是什么: 1.起个大名字 sn是strong name的缩写,正如其名,sn.exe的

.Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法

阐述签名工具这个概念之前,我先说说它不是什么: 1.它不是用于给程序集加密的工具,它与阻止Reflector或ILSpy对程序集进行反编译一毛钱关系都没有. 2.它很讨厌人们把它和加密联系在一起. 我再说说它是什么: 1.起个大名字 sn是strong name的缩写,正如其名,sn.exe的目的是给程序集起一个唯一的名字(Hash+name+version+culture),即签名,保证不会让两个不同的DLL重名(就跟身份证不能重一样) 2.让调用者识别被调用的DLL是否被篡改 这一点是我重点

如何:使用强名称为程序集签名

可通过许多方法为程序集签署强名称: 在 Visual Studio 中,通过使用项目的“属性”对话框中的“签名”选项卡.这是为程序集签署强名称的最简单且最方便的方法. 通过使用程序集链接器 (Al.exe) 将 .NET Framework 代码模块(.netmodule 文件)与密钥文件链接. 通过使用程序集特性将强名称信息插入代码中.你可以使用 AssemblyKeyFileAttribute 或 AssemblyKeyNameAttribute 特性,具体取决于要使用的密钥文件所在的位置.

为程序集添加强名称签名与数字证书签名

1.强名称签名(StrongName Sign) 强名称是由程序集的标识加上公钥和数字签名组成的.其中,程序集的标识包括简单文本名称.版本号和区域性信息(如果提供的话). 强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的. Microsoft® Visual Studio® .NET 和 Windows 软件开发包 (SDK) 中提供的其他开发工具能够向一个程序集分配多个强名称. 强名称相同的程序集应该是相同的. 通过签发具有强

第二十一章 命名空间和程序集

命名空间和程序集引用其他程序集mscorlib库命名空间命名空间名称命名空间的补充命名空间跨文件伸展嵌套命名空间using 指令using命名空间指令using别名指令程序集的结构程序集标识符强命名程序集创建强命名程序集程序集的私有方式部署共享程序集和GAC把程序集安装到GACGAC内的并肩执行配置文件延迟签名 命名空间和程序集 引用其他程序集 在第1章中,我们在高层次上观察了编译过程.编译器接受源代码文件并生称名称为程序集的输出文件.这一章中,我们将详细阐述程序集以及它们是如何生成和部署的.你