news 2026/9/5 23:03:32

Uart Assistant 打包与数字签名指南 (Pyinstaller)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Uart Assistant 打包与数字签名指南 (Pyinstaller)

一、打包命令

以下是 Uart Assistant 项目的三种打包方式:

1. Package(基础版)

pyinstaller -F -w -i cs_256x256.ico --name UartAssistant --add-data "cs_256x256.ico;." uart_assistant_qt.py

2. Package2(增强版)

pyinstaller -F -w -i cs_256x256.ico --name UartAssistant --add-data "cs_256x256.ico;." uart_assistant_qt_plus.py

3. Plus(带版本信息)

pyinstaller -F -w -i cs_256x256.ico --name UartAssistant --add-data "cs_256x256.ico;." --version-file version_info.txt uart_assistant_qt_plus.py

二、数字签名概述

给 PyInstaller 打包后的 Windows 可执行文件(.exe)添加数字签名,核心是通过微软官方的signtool.exe工具完成。签名后可避免系统报「未知发布者」警告,验证文件完整性。以下是完整步骤(含「测试用自签名证书」和「商用 CA 证书」两种场景):

三、核心前提

1. 安装签名工具signtool.exe

signtool是 Windows SDK 自带工具,需先安装:

  • 方式 1:安装 Visual Studio 构建工具(免费),安装时勾选「Windows 10/11 SDK」和「C++ 生成工具」;
  • 方式 2:单独安装 Windows SDK(仅选「Windows SDK 签名工具」组件)。

安装后找到signtool.exe路径(示例路径):

# Windows 11 SDK 示例路径 C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe

建议将该路径添加到系统环境变量PATH,方便全局调用。

2. 获取数字证书

证书类型用途获取方式
自签名证书测试 / 内部使用通过PowerShell命令生成(免费,系统会提示「未信任发布者」,但可验证完整性)
商用 CA 证书生产 / 公开发布向 CA 机构购买(如 DigiCert、VeriSign、GlobalSign,费用年付,系统信任)

四、步骤 1:生成自签名证书(测试用)

打开管理员权限的 PowerShell,执行以下命令生成自签名证书(有效期 1 年):

# 生成自签名证书并导出为 PFX 文件(含私钥) New-SelfSignedCertificate ` -Subject "CN=Ziqi Liao, O=Southern University of Science and Technology, C=CN" ` # 主题:CN=姓名/域名,O=组织,C=国家 -CertStoreLocation "Cert:\CurrentUser\My" ` -Type CodeSigningCert ` # 类型:代码签名证书 -KeyUsage DigitalSignature ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -NotAfter (Get-Date).AddYears(1) ` # 有效期1年 -FriendlyName "UartAssistant Code Sign" ` -HashAlgorithm SHA256 | Export-PfxCertificate ` -FilePath "D:\project\uart_assistant\UartSignCert.pfx" ` # 导出路径 -Password (ConvertTo-SecureString "123456" -AsPlainText -Force) # 证书密码(自定义)

执行后会在指定路径生成UartSignCert.pfx证书文件。

五、步骤 2:给 EXE 添加数字签名

方式 1:手动签名(单次执行)

打开管理员权限的命令行 / PowerShell,进入dist目录(exe 所在路径),执行签名命令:

# 基础签名(自签名证书) signtool sign ` /f "D:\project\uart_assistant\UartSignCert.pfx" ` # 证书文件路径 /p "123456" ` # 证书密码 /fd SHA256 ` # 签名算法(必须 SHA256,Win10+ 要求) /t "http://timestamp.digicert.com" ` # 时间戳服务器(避免证书过期后签名失效) "D:\project\uart_assistant\dist\UartAssistant.exe" # 待签名的 exe 路径
# 核心修正:用 & 调用带空格的 exe 路径,参数紧跟无多余空格 & "C:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe" sign /f "D:\project\uart_assistant\UartSignCert.pfx" /p "123456" /fd SHA256 /t "http://timestamp.digicert.com" "D:\project\uart_assistant\dist\UartAssistant.exe"

方式 2:商用 CA 证书签名(生产环境)

若有 CA 颁发的证书(通常是.pfx.p12文件),命令仅需替换证书路径 / 密码:

signtool sign ` /f "你的商用证书.pfx" ` /p "商用证书密码" ` /fd SHA256 ` /t "http://timestamp.digicert.com" ` # 商用时间戳服务器(可选:Verisign https://timestamp.verisign.com/scripts/timstamp.dll) "UartAssistant.exe"

六、步骤 3:验证签名是否成功

方式 1:命令行验证

signtool verify /pa "D:\project\uart_assistant\dist\UartAssistant.exe"

若输出Successfully verified,说明签名成功;若提示「签名有效但证书不受信任」(自签名证书正常现象)。

方式 2:图形化验证

右键UartAssistant.exe→「属性」→「数字签名」:

  • 能看到签名列表(主题 / 时间戳)→ 签名成功;
  • 点击「详细信息」→「查看证书」可查看证书信息。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 22:55:40

DataX DB2Writer深度解析:原理、避坑与生产级调优

简介:本资源是DataX生态中专用于DB2数据库写入的官方兼容插件包,面向大数据工程师、ETL开发人员及企业级数据迁移实践者,解决异构数据源向IBM DB2批量、稳定、可控写入的核心需求。压缩包共18个文件,含16个核心JAR依赖&#xff08…

作者头像 李华
网站建设 2026/9/5 22:50:00

我用 Langflow 拖拽式工作流搭了个全平台 AI 机器人

用可视化工作流驱动 QQ、微信、飞书、钉钉、Telegram、Discord 等多平台聊天机器人,无需写代码。---[LangBot](https://github.com/langbot-app/LangBot) 是一个开源的即时通讯机器人平台,支持将 Langflow、n8n、Dify、FastGPT、Coze 等 AI 工作流引擎接入微信、QQ、飞书、钉钉…

作者头像 李华
网站建设 2026/9/5 22:47:10

基于MCU与TensorFlow Lite的基桩低应变检测信号智能识别系统

关于这个标题,我需要先做一个说明:从标题本身看,它明显指向影视角色讨论和同人文化话题,这与技术博客平台的内容方向、以及我擅长的写作要求完全不匹配。如果我直接把它改写成一篇技术教程,会变成强行拼凑、词不达意的…

作者头像 李华
网站建设 2026/9/5 22:46:26

MUGEN角色调试:换边后HitDef失效与12P判定异常的排查流程

这次我们来看一个 MUGEN 角色调试案例。标题里的现象很典型:拉莱耶文本 10P 放在 1P 位置、开启隔离检测后,演出、杀伤和对战结果都正常;换成 12P 放到 2P 位置后,杀伤判定却失效,角色始终无法击败对方;再回…

作者头像 李华
网站建设 2026/9/5 22:41:45

AI Coding真实水平实测:一个人开发多租户报销SaaS的复盘

前阵子朋友问我:你天天说AI coding,到底行不行?我没给他看跑分,也没贴榜单,直接扔了个网址过去——一套真实在跑的企业报销SaaS系统。两周前,第二家内测公司刚把当月报销完整走完:员工提交单据、…

作者头像 李华
网站建设 2026/9/5 22:39:31

EEMD信号去噪实战:从算法原理到Matlab代码实现

简介:本资源是一套面向本科及硕士阶段信号处理教学与科研实践的EEMD(集合经验模态分解)去噪完整实现方案,聚焦于非平稳、非线性信号中噪声的有效抑制问题,适用于课程设计、毕业设计及基础科研建模场景。压缩包共6个文件…

作者头像 李华