程序集强签名和安装程序数字签名

一、程序集强签名

这个是.net 中的概念,为了保证程序集本身不被篡改,即保证这个程序集是你开发的,同时强命名使不同的程序可以指定不同的程序集版本,不影响其他应用程序。要对程序集进行强签名,无需使用购买的代码签名数字证书,用.NET提供的sn工具就可以生成snk文件,你只要保存好这个文件,就可以保证你的程序集的签名。

方法1:在SDK中创建强名称签名的程序集(Sn.exe),可以生成密钥对。我们使用如图9-4的命令生成一个新的密钥对并保存到本地文件test.snk中。

签名时使用编译器执行 CSC 、keyfile:f:test.snk Program.cs

方法2:使用VS项目属性页中的

二、安装程序数字签名

在window系统安装程序时,安装的执行程序,系统首先阻止,并提示用户是否要运行,这个时候,同时会提示这个应用程序的发行者。如果一个没有进行数字签名的应用程序,这个时候发行者就为“未知”,签名后,就可以告知用户这个应用程序是由你提供的。数字签名就是保证这个应用程序是由你发行,并未被第三方更改的。

原文地址:https://www.cnblogs.com/karl-F/p/7850161.html

时间: 2024-09-29 03:14:59

程序集强签名和安装程序数字签名的相关文章

程序集强签名

1.特点 1.1.强签名的程序集可以注册到GAC(全局应用程序集缓存),不同的应用程序可以共享同一个dll. 1.2.强签名的库(应用程序)只能引用强签名的库.非强签名的库(应用程序)没有限制,既可以引用强签名的库,也可以引用非强签名的库.(实际测试,强签名的应用只引用非强签名的程序集但不使用是可以的,只要使用了引入库的东西,那就会报:引用的程序集没有强签名) 1.3.强签名无法保护源代码,但能防止dll被第三方篡改. 1.4.能防止dll冲突. 2.方法 --如果有源代码 项目 -> 右键 -

程序集生成失败 -- 引用的程序集“ThoughtWorks.QRCode”没有强名称,为没有源码的程序集强签名

进入sdk提示符界面,依次输入如下指令 sn -k ThoughtWorks.QRCode.snk ildasm ThoughtWorks.QRCode.dll /out=ThoughtWorks.QRCode.il ilasm ThoughtWorks.QRCode.il /dll /resource=ThoughtWorks.QRCode.res /key=ThoughtWorks.QRCode.snk /optimize sn -v ThoughtWorks.QRCode.dll

C# 依赖同一个强签名程序集的不同版本

最近遇到一个问题就是要在同一个项目中同时使用Newtonsoft.Json.dll的不同版本.在网上搜索了下解决方案,基本都是在app.config或web.config中进行设置. 这次我亲自试验了一下,基本能解决我的问题.在此记录一下,以后参考.app.config的配置如下图所示: <codeBase>元素中的href属性可以使用相对路径. 至于如何获取强签名程序集的publicKeyToken,我知道的方法有有两种: 1.打开visual studio command prompt :

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

强命名程序集 如果一个程序集有一个唯一的标记,那么这个程序集就可以叫做强命名程序集.在.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 中提供的其他开发工具能够

VS报:&quot;dll标记为系统必备组件,必须对其进行强签名&quot;错误

问题: VS生成程序时,报“要将程序集“XX.dll”标记为系统必备组件,必须对其进行强签名.”错误. 解决方法: 1)在报错的解决方案中找到一个可以发布的项目(引用该XX.dll的项目未必可以发布): 2)右击该项目,选择“属性”: 3)选择“发布”: 4)点击“应用程序文件”按钮: 5)找到该“XX.dll”,将发布状态有“系统必备”改为“包括(自动)”: 6)再次运行成功. 参考: 1. 首先说明一下:X是某程序集的名称,相当于数学中的未知数X. 看到这样的提示,开始我以为是把程序集X的发

[转]通过apk签名使应用程序有系统权限

[转]通过apk签名使应用程序有系统权限 (2013-01-08 13:40:50) 转载▼ it 分类: Android 出处:http://blog.csdn.net/doom66151/article/details/7085464 问题: 系统预装软件,需要访问一些配置文件,配置文件的owner都是设置为system.所以应用程序需要有授权才可以读写. google搜索找到以下文章,解决了这个问题. 以下内容解释了: android系统权限规则? 如何使应用程序获取系统权限? apk签名

[转]一个完整的Installshield安装程序实例

Installshield安装程序实例—基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于上手和精通都不是容易的事情,之前都是用Installshield的Project Assistant对付过去的,这次做这个安装程序,为了实现一些功能,必须写代码,国内外现成的资料很少,而且很多都语焉不详,自己反复啃了多次,对比Installshiel自带的help,才明白资料所表达的意思.这个安装程序虽然比较简陋,在行家眼里可能是小菜一碟,但