Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何验证数字签名?_C#_.net_Vb.net_Certificate_Digital Signature - Fatal编程技术网

C# 如何验证数字签名?

C# 如何验证数字签名?,c#,.net,vb.net,certificate,digital-signature,C#,.net,Vb.net,Certificate,Digital Signature,我花了3天的时间阅读和测试来了解数字签名和代码签名到底是什么,为什么存在以及如何签名我的应用程序。。。(仍然没有100%学会) 好的,今天我已经完成了我自己的证书和数字签名,但是当我尝试在其他机器上打开编译后的应用程序,比如用Win7打开VirtualMachine(VBOX)时,我仍然从共享设备(我的意思是从网络设备,你知道VirtualMachine的共享文件夹)得到这个建议 通知说我的数字签名无效,我不知道为什么 无法验证免费数字签名 以下是我从命令行获取证书的方式: makecert

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

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

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

无法验证免费数字签名

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

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 update自动分发。

这意味着所有替代方案都在为签名付费?