net 签名

为什么需要进行数字签名

为了保证系统的安全,现在Windows对于通过网络上下载的应用程序的执行文件都会首先阻止,并提示用户是否要运行。这个时候,同时会提示这个应用程序的发行者。如果一个没有进行数字签名的应用程序,这个时候发行者就为“未知”,签名后,就可以告知用户这个应用程序是由你提供的。在这里,数字签名就是保证这个应用程序是由你发行,并未被第三方更改的。

上面这种情况还好,很多时候,如果你安装了360之类的软件,对于未签名的应用程序,大部分情况是阻止其运行的。如果没有进行数字签名,那么对用户会造成极大困扰。

对执行文件进行数字签名还有诸多好处,我就不一一例举。现在购买一个代码签名的证书也不算贵,对于类似我们这种发行客户端应用程序的厂商而言,是很有必要购买一个证书的。

签名的类型介绍

签名有程序集签名和ClickOnce签名

程序集签名:.net里边有个概念 程序集强签名,这个只用于net,保证程序集不被修改。程序集签名(也称为强名称签名)赋予应用程序或组件一个唯一标识,其他软件可用该标识来显式标识和引用该应用程序或组件。强名称由程序集的简单文本名、版本号、区域性信息(如果提供)以及公钥/私钥对组成。

ClickOnce签名:ClickOnce的应用程序清单(即app.exe.manifest文件)和部署清单(即app.application文件)进行签名。这样的签名实际上保证客户端正确识别ClickOnce部署包的发行者以及完整性,保证不被第三方篡改。如果不对ClickOnce清单进行签名的话,那么在安装(即运行app.application文件)的时候,安装程序就无法显示发行者,在某些企业环境下或某些安全软件下,就可能阻止application文件的运行(尤其你的应用程序需要获取Full Trust权限的时候更是如此)。但是,对于ClickOnce清单进行签名并不会对程序的执行文件进行签名(虽然同样需要代码签名数字证书)。

如果不需要发布的话只需要程序集签名即可。

VS2022签名步骤

使用命令行创建

记得使用管理员启动,避免权限问题 搜索vs 

输出以下命令创建snk的密钥文件 

相关命令

cd 你的路径

sn -k out.snk

使用vs打开项目,右击属性 - 点击浏览选中刚刚创建的snk文件

生成项目,就实现了为程序集添加签名。

你可以使用 sn -v "程序集地址\youdll.dll"

如果打开文件夹删除这个out.snk,你vs编译就会报错.

你可以引用另一个程序的dll,执行程序用到另一个程序的内容就会报错

使用VS创建

点击属性 - 签名 - 勾选程序签名 

输入信息

之后会生成一个.pfx的文件

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值