對exe檔案進行數字簽名

2021-08-27 12:06:21 字數 1304 閱讀 2083

在之前的文章《py2exe+inno setup整合打包python程式》中,我們編寫了python指令碼,使得可以一鍵對python編寫的windows程式進行打包,並編譯成exe可執行檔案,現在我們在此基礎上新增對exe檔案進行數字簽名的指令碼。

首先,在對exe檔案進行數字簽名時,當然要有乙個pfx金鑰檔案,如果沒有,可以使用windows sdk提供的工具建立乙個,如下指令碼:

makecert.exe -sv c:\mykey.pvk -n "cn=comapy name" c:\mycert.cer

cert2spc.exe c:\mycert.cer c:\mycert.spc

pvk2pfx -pvk c:\mykey.pvk -pi password -spc c:\mycert.spc -pfx c:\mycert.pfx -po password

那麼有力pfx金鑰檔案,對exe進行簽名的指令碼也就變得非常簡單,只需一段指令碼即可:

signtool sign /f c:\mycert.pfx /p password /v c:\yourexefile.exe
在我的乙個專案中,該專案是使用python+wxpython編寫的乙個windows桌面程式,需要對其進行打包,並編譯成exe安裝檔案,我編寫了乙個指令碼,可以一鍵完成這些工作。那麼因此我也可以將資料簽名的工作也放在這個指令碼中完成。首先編寫乙個進行資料簽名的方法,如下:

def signtool(filename):

import subprocess

signtool_exe = r'c:\program files\microsoft sdks\windows\v7.0a\bin\signtool.exe'

pfx_file = 'c:\\mycert.pfx'

cmd = '%s sign /f %s /p password /v %s' % (signtool_exe, pfx_file, filename)

print cmd

proc = subprocess.popen(cmd)

proc.wait()

為了整合到原來的指令碼,需要在build_installer類的run方法中新增對signtool方法的呼叫,分別對主程式的exe檔案和安裝包檔案進行簽名:

dist_exe = 'myexefile.exe'

signtool(dist_exe)

signtool(script.get_setup_filename())

只有將上面的**新增到run方法後面就可以了。

對稱密碼體制進行數字簽名

今天,我來給大家簡單介紹一下用對稱密碼體制進行數字簽名,也許好多人聽過用 公鑰密碼體制進行數字簽名的,還沒有聽過這對稱密碼體制也可用來簽名。但我們現在 用得最多的當然是用公鑰密碼體制進行數字簽名的。先說說數字簽名的功能。數字簽名可以解決否認 偽造 篡改及冒充等問題 凡是需要對使用者的身份進行判斷的情...

對PDF進行數字簽名,生成可信的文件

電子賬單 回單 通知 合同等越來越流行了,電子文件的可信性變得非常重要。pdf是理想的電子文件格式,有下面這些優勢 數字簽名的重要意義 通過網際網路發布的pdf文件可以使用pdf文件簽名證書進行身份簽名或確認簽名,簽名後的文件則可以向使用者證實pdf文件簽署人的真實身份,簽署人的真實身份是通過權威的...

白話數字簽名(番外篇) 簽名EXE檔案(下)

摘要 如果我們在iexplore.exe上面右擊,再點選 屬性 可以看到並沒有顯示數字簽名頁,但是在process explorer中卻可以成功驗證簽名,這是怎麼回事呢?簽名exe檔案的兩種方法 上篇寫到如果我們在iexplore.exe上面右擊,再點選 屬性 可以看到並沒有顯示數字簽名頁,但是在p...