winform 程序制作自己的数字签名(续)

在上一篇文章《winform 程序制作自己的数字签名》中我们已经可以得到我们程序定制的数字签名了,但是比较讨厌的是每次编译之后,数字签名需要重新手动添加。

我们需要的是在程序编译时自动添加数字签名。

那实际上vs已经提供了此功能,具体操作如下。

右键项目属性 -> 生成事件 -> 后期生成事件命令行 -> 输入数字签名命令行

"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\signtool.exe" sign /a $(TargetPath)
那么现在我们在每次编译之后,数字签名就已经添加了。

注意:确保证书已经正确导入到个人证书位置,详细信息见上一篇文章。
  

 

参考:将Signtool.exe作为生成后事件启动

   SignTool.exe(签名工具)

转载于:https://www.cnblogs.com/idoudou/p/3144467.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字签名过程: (1) 发方A用自己的私钥PVA,采用非对称RSA算法,将原文信息进行哈希(hash)运算,并对hash值进行加密,即得数字签名DS;(RSACryptoServiceProvider.SignData()) (3) 发方A用对称算法AES的对称密钥SK对原文信息、数字签名SD及发方A证书的公钥PBA采用对称算法加密,得加密信息E;(Rijndael.CreateEncryptor()) (4) 发方用收方B的公钥PBB,采用RSA算法对对称密钥SK加密,形成数字信封DE,就好像将对称密钥SK装到了一个用收方公钥加密的信封里;(RSACryptoServiceProvider.Encrypt()) (5) 发方A将加密信息E和数字信封DE一起发送给收方B; (6) 收方B接受到数字信封DE后,首先用自己的私钥PVB解密数字信封,取出对称密钥SK;(RSACryptoServiceProvider.Decrypt()) (7) 收方B用对称密钥SK通过AES算法解密加密信息E,还原出原文信息、数字签名SD及发方A证书的公钥PBA;(Rijndael.CreateDecryptor()) (8) 收方B验证数字签名,先用发方A的公钥解密数字签名得数字摘要MD; (9) 收方B同时将原文信息用同样的哈希运算,求得一个新的数字摘要MD`;(RSACryptoServiceProvider.VerifyData()) (10)将两个数字摘要MD和MD`进行比较,验证原文是否被修改。如果二者相等,说明数据没有被篡改,是保密传输的,签名是真实的;否则拒绝该签名程序用法: “生成证书”按钮,生成发送方、接收方对应的公钥证书和私钥证书。 “签名”按钮,使用发送方私钥、发送方公钥、接收方公钥对文本框中的文本进行数字签名。得到签名后的文本。 “还原验证”按钮,使用接收方私钥将签名后的文本还原,并进行验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值