Python:获取文件的数字签名信息

Python:获取文件的数字签名信息,python,digital-signature,Python,Digital Signature,我希望利用Python创建一个脚本,在安装指定文件后检查该文件的数字签名和版权信息 有人有什么想法吗?我尝试过使用win32file.GetFileAttributes和其他类似的方法,但没有得到我想要的信息 理想情况下,我希望尽可能多地使用数字签名 谢谢。您可以通过win32com使用CAPICOM接口从二进制可执行文件获取签名信息。默认情况下,这些库通常不会安装,但它是一个独立的库 下面是一个如何在python中使用CAPICOM的示例: import win32com.client s=w

我希望利用Python创建一个脚本,在安装指定文件后检查该文件的数字签名和版权信息

有人有什么想法吗?我尝试过使用win32file.GetFileAttributes和其他类似的方法,但没有得到我想要的信息

理想情况下,我希望尽可能多地使用数字签名


谢谢。

您可以通过win32com使用CAPICOM接口从二进制可执行文件获取签名信息。默认情况下,这些库通常不会安装,但它是一个独立的库

下面是一个如何在python中使用CAPICOM的示例:

import win32com.client
s=win32com.client.gencache.EnsureDispatch('capicom.signedcode',0)
s.FileName=r'J:\Program Files\Adobe\Flash Player\AddIns\airappinstaller\airappinstaller.exe'
signer = s.Signer
print (signer.Certificate.IssuerName, signer.Certificate.SerialNumber)

你想要什么样的信息?我想要尽可能多的数字签名信息。签名者信息、版本、序列号、有效起始日期、有效终止日期这取决于所用签名的文件格式和类型。Python有几个库可以验证不同类型的签名。请更具体一点。我尝试安装CAPICOM SDK并执行代码,但失败了:回溯(最近一次调用):文件“C:\Users\user\Desktop\test.py”,第23行,在s=win32com.client.gencache.EnsureDispatch('CAPICOM.signedcode',0)文件“C:\Python27\lib\site packages\win32com\client\gencache.py”,第529行,在EnsureDispatch disp=win32com.client.Dispatch(prog_id)文件“C:\Python27\lib\site packages\win32com\client\u init\uuuu.py”的第95行中,在Dispatch Dispatch中,userName=dynamic.\u getGoodDispatch和userName(Dispatch,userName,C lsctx)文件“C:\Python27\lib\site packages\win32com\client\dynamic.py”,第108行,在文件“C:\Python27\lib\site packages\win32com\client\dynamic.py”的第85行的uuGetGoodDispatch IDispatch=pythoncom.CoCreateInstance(IDispatch,None,clsctx,pythoncom.II D_IDispatch)pywintypes.com中,出现以下错误:(-2147221005,“无效的类字符串”,无,无)抱歉,错误地按enter键。请在命令提示下使用“regsvr32 capicom.dll”自行注册。@RogerUpole,您好,罗杰,我按照您的建议进行了尝试。注册capicom.dll并提示我成功。但当我在python中运行时,它仍然会告诉我相同的错误,例如“(-2147221005,“无效类字符串”,无,无)“我的操作系统是win7 x64,python版本是2.7。还有其他注释吗?谢谢。