存档

文章标签 ‘校验’

c#获取可执行代码文件的数字签名信息

2015年5月12日 没有评论

在最近的场景中,有遇到过在运行某个程序前,先对程序进行数字签名验证。如果通过则运行,否则不运行。
数字签名技术广泛用在 exe、dll 等二进制可执行文件中,防止文件被篡改,保证了文件的唯一性。一旦文件被修改,则数字签名丢失。

C#中对获取数字签名基本信息是很简单的,微软已经帮我们封装好了,首先添加引用using System.Security.Cryptography.X509Certificates;
然后就是普通的调用:

X509Certificate cert = X509Certificate.CreateFromSignedFile(path);
var s = cert.Subject;
MessageBox.Show(s);

效果如下所示:

cert

certdlg

当然,这只是一个初步的校验,即校验是否存在数字签名。至于数字签名是否合法则需要进一步去做校验。另外,对于CreateFromSignedFile方法,如果文件没有数字签名,那么会引发异常,所以代码里应该添加对该异常的处理。

分类: 一句话 标签: , ,