如何对EXE程序进行数字签名?

如何对EXE程序进行数字签名?,第1张

方法一

1、购买或自己创立一个的数字签名证书文件。

有工具软件可以制作数字签名证书,比如openssl,但自签的,在别人的机器上,回出现签名无法校验的问题。除非人家信任,否则人家不会安装你的证书。

2、用工具软件对exe或其他任何文件,进行数字签名。可以是免费的UI工具,比如:kSign;也可以类似signtool(微软的命令行工具);还可以 *** 作系统的向导程序(比如微软Windows上的签名文件安装,导入并对文件数字签名的向导)。xNix下,可以用GnuPG(gpg)从证书到签名,一次搞定。

3、你要是做程序开发的,可以利用signtool这样的命令行工具,写批处理,然后加入自己项目的make过程中自动加签。

方法二

1、在CMD中,输入命令makecert做了cer和PVK文件;

2、打开signcode.exe把cer和PVK文件导入了我的程序;

3、运行我的程序,在360里面,还是没有显示MD5值。

代码签名的基础是PKI安全体系。代码签名证书由签名证书私钥和公钥证书两部分组成。私钥用于代码的签名,公钥用于私钥签名的验证和证书持有者的身份识别。

1. 发布者从CA机构申请数字证书;

2. 发布者开发出代码;借助代码签名工具,发布者将使用MD5或SHA算法产生代码的哈希值,然后用代码签名证书私钥对该哈希值签名,从而产生一个包含代码签名和软件发布者的签名证书的软件包;

3. 用户的运行环境访问到该软件包,并检验软件发布者的代码签名数字证书的有效性。 *** 作系统或浏览器通过可信根证书列表验证代码签名证书的有效性,确认发布者身份可信,软件未被篡改。

4. 用户的运行环境使用代码签名数字证书中含有的公钥解密被签名的哈希值;

5. 用户的运行环境使用同样的算法新产生一个原代码的哈希值;

6. 用户的运行环境比较两个哈希值。如果相同,将发出通知声明代码已验证通过。所以用户可以相信该代码确实由证书拥有者发布,并且未经篡改。

整个过程对用户完全透明,用户将可以看到软件发布者提示信息,并可以选择是否信任该软件发布者。在选择信任软件发布者之后,运行所有该软件发布者签名的程序时将可以不再收到任何提示信息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11406330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存