c# - 如何验证数字签名?

标签 c# .net vb.net certificate digital-signature

我花了 3 天的时间阅读和测试,以了解一点数字签名和代码签名到底是什么,为什么存在以及如何签署我的应用程序......(仍然没有学到 100%)

好吧,今天我已经完成了自己的证书和数字签名,但是当我尝试在其他机器上打开编译的应用程序时,比如带有 Win7 的 VirtualMachine (VBOX),我仍然从共享设备(我的意思是来自网络设备,你知道虚拟机的共享文件夹)

enter image description here

提示说我的数字签名无效,我不知道为什么!

无法验证免费数字签名?

这是我从命令行获取证书的方式:

makecert -r -pe -a sha1 -n "CN=%Name%" -b "%InitialDate%" -e "%ExpireDate%" -$ individual -sr LocalMachine -ss my -cy authority -# "%SerialNumber%" "%Name%.cer"

这就是我签署 Framework 4 应用程序的方式:

SignTool sign /f "%Name%.pfx" /p "%Password%" Application.exe

我还在我的项目的签名选项卡中添加了我的证书,但我仍然从 Windows 获得建议屏幕......

当我尝试在其他机器上运行我的恶意应用程序时,为什么操作系统会提示该屏幕?

我错过了什么?

PS:我知道如何绕过设置 IE 选项的建议屏幕,但这不是其他人的解决方案。

最佳答案

这是因为您使用自己的非正版证书对代码进行签名。代码签名证书必须由合法的可信发布者颁发,如 Thawte、VeriSign、GlobalSign 等...否则您需要以自己的方式分发自己的证书并要求用户将证书导入为可信证书。合法证书通常由 Windows 更新自动分发。

关于c# - 如何验证数字签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16141191/

相关文章:

asp.net - 报告计算时间下的 Visual Studio 诊断工具

c# - ASP.NET MVC 3 路由

c# - NEST:创建别名并设置过滤器

c# - XNA 找出是什么占用了这么多内存?

c# - 在运行时从调试可视化工具中检测源语言

json - 当我想存储 UTC 日期时间时,如何停止 Entity Framework 转换 Json UTC 日期时间

jquery - gridview页面索引更改错误: The state information is invalid for this page and might be corrupted(alternative solution needed)

c# - 如何使用列表对象中 3 个属性的搜索条件加快 List<> 上的此 linq 查询

c# - 主顶部菜单和右键单击上下文菜单之间的 WPF 共享菜单

c# - 无法生成异常 : very simple C# Windows Form Application and app. 配置