使用makecert 对activex控件进行数字签名全过程

目录

 

1.生成证书文件

2.对打包好的控件进行签名

3.成果验证


1.生成证书文件

需要用到以下几个文件

需要的软件打包下载地址 csdn下载地址

首先我们要制作一个证书
进入DOS模式下该目录
为了便于操作,建议你将这个工具包放在磁盘根目录下,目录名称起得简单些
输入以下命令,生成一个名为myActiex.cer的证书

makecert /sv "SqlPlus.PVK" /n "CN=pingyu,E=pingyu,O=Rush" -$ "individual" -r myActivex.cer 

注意这里需要使用 -$ "individual" -r  否则后续会出现windows无法构建数字证书路径的错误

这个时候,会弹出提示框,首先给SqlPlus.pvk文件设置私钥保护口令;

然后,再次输入这个口令用私钥(在SqlPlus.pvk文件中)来给公钥(在myActivex.cer文件中)签名(自签名)。

输入完成后界面上会提示Succeeded,在当前的目录下也生成了myActivex.cerSqlPlus.pvk两个文件

2.对打包好的控件进行签名

双击工具包里的signcode.exe  

点“下一步”

选择需要签名的控价包

点“下一步”

选择自定义

下一步-》从文件选择   选择已经生成的私钥文件

  输入密码

下一步需要注意使用md5加密算法,否则会出现无法构建证书的错误

到此对activex控件加数字证书完成

3.成果验证

chktrust.exe C:\*********.CAB

还是无法验证发布者??? 怎么办

百度之后找到了原因  证书应该加入受信任的根证书颁发机构,有了 CA 认证才行

win+r 运行mmc  步骤参考下面的 操作步骤

选择  添加/删除管理单元

选择证书  之后 点添加按钮  再点确定

点证书 展开节点

在受信任的根证书颁发机构-》证书 右键 选择所有任务-》导入

这里把 自己在第一步 生成的证书导入

证书导入成功

 

到此 再重复步骤2和步骤3 用signcode.exe 重新对安装包数字签名,用chktrust.exe 对签名后的证书进行检查

检查通过,至此 数字证书添加完成,可以把activex的安装包放到网站里 供大家下载安装了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中使用数字签名认证需要以下步骤: 1. 生成数字证书:可以使用第三方证书商申请数字证书,也可以使用Microsoft提供的自签名工具MakeCert.exe生成数字证书。 2. 为程序集签名:在Visual Studio中打开项目属性,选择“签名”选项卡,勾选“签名程序集”并选择生成的数字证书。 3. 验证数字签名:在程序中调用System.Security.Cryptography命名空间中的方法进行数字签名验证,如果数字签名验证失败,说明程序集被篡改或者不是原始的程序集。 下面是一个简单的示例代码,演示如何进行数字签名认证: ```csharp using System; using System.Reflection; using System.Security.Cryptography; class Program { static void Main(string[] args) { Assembly assembly = Assembly.LoadFile("MyAssembly.dll"); RSACryptoServiceProvider publicKey = (RSACryptoServiceProvider)assembly.ManifestModule.Assembly.PublicKey.Key; bool signatureVerified = VerifySignature(assembly.Location, publicKey); Console.WriteLine("Signature verified: " + signatureVerified); } static bool VerifySignature(string assemblyPath, RSACryptoServiceProvider publicKey) { using (var sha1 = new SHA1CryptoServiceProvider()) using (var stream = System.IO.File.OpenRead(assemblyPath)) { byte[] hash = sha1.ComputeHash(stream); byte[] signature = publicKey.SignHash(hash, "SHA1"); return publicKey.VerifyHash(hash, "SHA1", signature); } } } ``` 以上代码中,我们使用Assembly.LoadFile方法加载程序集,并获取程序集的公钥,然后调用VerifySignature方法进行数字签名验证,最终输出验证结果。在VerifySignature方法中,我们使用SHA1算法计算程序集的哈希值,然后使用公钥对哈希值进行签名,最后使用公钥验证签名。如果验证成功,说明程序集是原始的程序集,否则说明程序集被篡改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值