Python给指定文件打上数字签名

数字签名概念:

数字签名(又称​​公钥​​​数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了​​公钥加密​​​领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称​​密钥加密技术​​​与​​数字摘要​​技术的应用。(来源于百度百科)

数字签名作用:

个人感觉 主要是为了保证文件安全性,完整性。就是如果有人修改了文件的部分,实质上,数字签名也会随之改变,就能进行判别。

实战添加数字签名:

  • 环境配置(Win10环境下):
  1. ​makecert.exe​​​和​​signtool.exe​​:这两个文件是主要作用是在一个是创建证书,一个是打签名时候使用,只要安装VisualStudio就自带了。
  2. ​python3​​:这个是用来写代码的。。
  • 代码:
#打标签工具

import subprocess

def signtool(filename):
signtool_exe = r'C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe' # signtool exe
pfx_file = r'E:\certs\server.pfx' # pfx位置
cmd = '%s sign /f %s /p 12421242 /v %s' % (signtool_exe, pfx_file, filename)
proc = subprocess.Popen(cmd)
proc.wait()

signtool(r'F:\565\code\sign\1.exe')
  • 运行结果:
  • 可以看出,已经打上数字签名了。