Delphi 代码和文档签名工具——对比指南

2026 年 Delphi 和 C++ Builder 开发者可用的代码签名和文档签名工具中立调研(附来源引用):sgcSign、Microsoft SignTool、osslsigncode、Azure Trusted Signing、DigiCert Software Trust Manager、jsign、Adobe Acrobat 以及 iText / Apryse PDF SDK。每项功能声明均链接至项目官方文档。

代码和文档签名的八种选择

每种选择的一段摘要,并附上官方文档或代码库链接。详细对比见下方矩阵。

Microsoft SignTool

Microsoft · Windows SDK EULA (free for development)

Microsoft 随 Windows 10 / Windows 11 SDK 提供的命令行代码签名工具。通过 SIP(主题接口包)机制对 Windows PE 文件(.exe、.dll、.sys、.cab、.cat)以及 AppX/MSIX 包、ClickOnce 清单和 Microsoft Office VBA 项目进行签名和时间戳。从 Windows 证书存储、PKCS#12 文件、智能卡和云签名服务(CSP)提供商读取证书。PDF、XML 和 ETSI XAdES / PAdES / CAdES 签名不在 SignTool 的支持范围内。

官方页面

osslsigncode

Michał Trojnara & contributors · GPL-3.0-or-later (open source)

基于 OpenSSL 构建的开源跨平台 Authenticode 签名工具。对 Microsoft PE 二进制(.exe、.dll、.sys、.cab、.cat)、CAB 档案、AppX/MSIX 包、NuGet 包和脚本文件进行签名。除 Windows 外还可在 Linux、BSD 和 macOS 上运行,这也是该项目诞生的历史原因——使 Linux 构建场无需在 Wine 下运行 SignTool 即可对 Windows 二进制文件签名。支持 RFC 3161 和传统 Authenticode 时间戳;证书来源包括 PKCS#12 文件和 PKCS#11 硬件令牌。

官方页面

Azure Trusted Signing

Microsoft · Commercial (Azure subscription, per-month)

Azure 中 Microsoft 的全托管代码签名服务(前身为 Azure Code Signing)。客户不持有签名证书——Microsoft 每三天颁发一个短期证书,并将私钥存储在 Azure HSM 中。为 SignTool、GitHub Actions、Azure Pipelines、Trusted Signing PowerShell 以及专用 dlib(Trusted Signing CSP)提供集成。支持 Windows PE、MSIX、AppX、ClickOnce、VBScript / JScript / PowerShell 脚本签名;PDF / XML 签名不在支持范围内。

官方页面

DigiCert Software Trust Manager

DigiCert · Commercial (subscription)

DigiCert 云代码签名平台。私钥存储在 DigiCert 托管的 FIPS 140-2 / 140-3 HSM 中。通过专用工具套件对 Windows PE、Java JAR、Android APK、Linux RPM / DEB、容器镜像、NuGet、Apple Mach-O 二进制文件等进行签名:smctl 签名客户端、SignTool 的 DigiCert KSP / CSP 插件、Jenkins / GitHub Actions / Azure Pipelines 原生集成以及 REST API。文档(PDF、XAdES)通过单独的 DigiCert Document Trust Manager 产品签名。

官方页面

jsign

Emmanuel Bourg · Apache 2.0 (open source)

基于 Java 的开源 Authenticode 签名工具。可作为独立命令、Maven / Gradle / Ant 插件或编程式 Java API 运行。对 Microsoft PE 二进制、MSI 安装包、Microsoft 脚本文件(.ps1、.vbs、.js)、MSIX / AppX 包、CAB 档案和 CAT 目录签名。通过单一 CLI 支持多种云 HSM:AWS KMS、Azure Key Vault、Azure Trusted Signing、Google Cloud KMS、DigiCert ONE、HashiCorp Vault、Oracle Cloud KMS、Yubico YubiHSM、AWS CloudHSM(via PKCS#11)以及任何 PKCS#11 设备。

官方页面

Adobe Acrobat / Adobe Sign

Adobe · Commercial (subscription)

Adobe Acrobat Pro 和 Adobe Acrobat Sign 是用于签署 PDF 文档的终端用户产品。Acrobat Pro 应用带时间戳的数字签名和认证签名,并验证传入的 PDF 签名;Acrobat Sign(前身为 EchoSign)是一个用于收集外部各方电子签名的云服务。两者均非开发者库:不提供 Delphi / C++ Builder SDK 和命令行签名工具。PAdES 长期验证在验证端通过 Adobe 批准信任列表(AATL)和 EU 信任列表(EUTL)得到支持。

官方页面

iText / Apryse

iText Group / Apryse Software (PDFTron) · Commercial (AGPL or commercial license)

两款商业 PDF SDK,广泛用于服务端应用中的无人值守 PDF 签名。iText Core(前身为 iTextSharp)以 AGPL-3.0 或商业许可证提供 Java 和 .NET 版本;com.itextpdf.signatures 命名空间涵盖 PAdES-B-B / B-T / B-LT / B-LTA、MDP(修改检测)认证和可见签名外观。Apryse PDFTron 是商业跨平台 SDK(Java、.NET、C++、Node.js、Python、Go、iOS、Android、Web),提供 PDF.SignatureHandler API 和 PAdES 支持。两家厂商均未提供原生 Delphi 绑定。

官方页面

并排功能对比

勾选()表示项目文档记载了原生支持;横线()表示项目未原生提供;波浪线(~)表示部分支持 / 需借助插件 / 未经明确记录——详见来源部分的核实说明。

格式、运行时、许可

15 行
功能 sgcSign Microsoft SignTool osslsigncode Azure Trusted Signing DigiCert Software Trust Manager jsign Adobe Acrobat / Adobe Sign iText / Apryse
签署 Windows 二进制文件 Authenticode 适用于 .exe / .dll / .sys / .ocx
签署 ClickOnce 清单 .application / .manifest 文件 ~ ~
签署 NuGet / VSIX 包 .nupkg / .vsix 容器 ~ ~ ~ ~
签署移动端包(APK / IPA) Android APK 或 iOS IPA 包
签署 PDF 文档(PAdES) ETSI EN 319 142,与 Adobe 兼容 ~
签署 Office 文档 Word / Excel / PowerPoint docx / xlsx / pptx ~
签署 XML 文档(XAdES) ETSI EN 319 132 ~ ~
原生 Delphi / C++ Builder API 一流 VCL / FMX 组件
跨平台工具 可在 Windows、Linux 和 macOS 上运行 ~ ~
云 HSM 支持 AWS / Azure / GCP / HashiCorp / CSC v2 ~ ~ ~ ~
eIDAS / 国家配置文件预设 按国家的签名预设(VeriFactu、KSeF 等) ~ ~ ~
独立命令行工具 包含命令行客户端 ~
库 / SDK 供应用程序调用的编程式 API ~ ~ ~
积极维护 过去 12~18 个月内有发布或标记活动
许可证模式 许可证类型 Commercial Windows SDK EULA GPL-3.0-or-later Commercial (Azure subscription) Commercial (subscription) Apache 2.0 Commercial (subscription) AGPL or Commercial (iText) / Commercial (Apryse)
文档记载的原生支持 未原生提供 ~ 部分支持 / 需借助插件 / 未经核实

Honest fit for each option

每种选择都有其适用受众。正确的选择取决于您签署的是代码、文档还是两者兼有、托管签名逻辑的运行时、您的密钥托管偏好以及许可证偏好。

选择 sgcSign

当您使用 Delphi 7~13、C++ Builder 或 .NET 构建应用程序,并希望通过同一密钥提供者抽象层同时生成文档签名(XAdES、PAdES、CAdES、ASiC)和代码签名(Authenticode、ClickOnce、NuGet、VSIX、PowerShell)时,请选择 sgcSign。21 个预配置国家配置文件涵盖欧洲电子发票和 eIDAS 劳动合同签名;服务器形态可集中管理构建场的密钥托管。

选择 Microsoft SignTool

当您签署的构件均为 Windows 二进制文件(PE / .cab / AppX / MSIX)且构建主机为 Windows 时,请选择 Microsoft SignTool。SignTool 是与所有提供 CSP / KSP 的云签名服务(DigiCert KeyLocker、Azure Trusted Signing、GlobalSign Atlas 等)配套使用的参考命令行工具,且 Windows SDK 安装免费。

选择 osslsigncode

当构建主机运行 Linux、BSD 或 macOS,且待签署构件为 Windows 二进制文件(CAB 档案、PE 文件、MSIX 包或 NuGet 包)时,请选择 osslsigncode。GPL-3.0 许可证可自然融入已使用 OpenSSL 和 PKCS#11 硬件令牌的 CI 流水线。

选择 Azure Trusted Signing

当您需要全托管的 Windows 代码签名服务(由 Microsoft 持有证书和 HSM)、团队已在 Azure 上运营,且待签署构件为 Windows PE、MSIX、AppX、ClickOnce 或 PowerShell 时,请选择 Azure Trusted Signing。短期证书模型消除了持有代码签名证书的续期和身份验证负担。

选择 DigiCert Software Trust Manager

当您已购买 DigiCert 代码签名证书,并希望将其存储在 DigiCert 的 FIPS 认证 HSM 中,通过统一界面管理续期、吊销和审计时,请选择 DigiCert Software Trust Manager。原生 smctl 客户端和 SignTool KSP 插件可在一套工作流中覆盖 Windows 二进制文件、Java JAR、容器镜像和移动端包。

选择 jsign

当构建流水线已运行在 JVM 工具链(Maven、Gradle、Ant 或基于 JDK 的 Jenkins)上,需要一个 CLI 驱动所有主流云 HSM,且待签署构件为 Windows PE / MSI / MSIX / 脚本文件时,请选择 jsign。Apache 2.0 许可证可完美融入闭源构建流程。

选择 Adobe Acrobat / Adobe Sign

当签名工作流为交互式人工操作——由人工在 Acrobat 中打开 PDF、添加可见签名并发送文件时,请选择 Adobe Acrobat / Adobe Sign。Acrobat Sign 将该模式扩展至通过电子邮件收集多方签名的场景。无需构建时或服务端自动化。

选择 iText / Apryse

当应用程序基于 Java、.NET、C++ 或其他受支持的运行时构建,且 PDF 是主要文档格式时,请选择 iText 或 Apryse PDFTron。两款 SDK 均具备成熟的 PAdES 支持、签名之外丰富的 PDF 功能(表单、编辑、渲染),并拥有广泛的企业级参考案例。

迁移至 sgcSign——有何不同

从上述任一选项切换时的差异简要说明。无意贬低——仅做实用对比。

从 Microsoft SignTool 迁移

SignTool 仅涵盖 Windows 代码签名。如果您的应用程序已在构建脚本中调用 SignTool,sgcSign Server 提供一个 REST 签名端点,接收二进制文件和提供者名称并返回已签名的构件——工作流不变,但 Authenticode 操作集中运行,审计追踪、审批工作流和按项目配额均集中于一处。文档签名(XAdES / PAdES / CAdES / ASiC)也可通过同一守护进程使用。

从 osslsigncode 迁移

如果您的构建流水线使用 osslsigncode 从 Linux 构建代理对 Windows 二进制文件进行 Authenticode 签名,sgcSign Server 通过 HTTPS API 提供相同的流程,并在您可能已使用的 PKCS#11 路径基础上增加了对 AWS KMS、Azure Trusted Signing、Google Cloud KMS 和 HashiCorp Vault 的一流支持。文档格式(PDF / XML / CMS)也可通过同一端点使用。

从 Azure Trusted Signing 迁移

sgcSign 将 Azure Trusted Signing 作为其十个密钥提供者之一(TsgcAzureTrustedSigningProvider),因此 Delphi 或 C++ Builder 应用程序可直接驱动 Azure Trusted Signing——相同的私钥、相同的 Microsoft 颁发的公信证书,但签名器在进程内运行。如果还需要 PDF / XAdES / CAdES 文档签名,同一密钥提供者也可服务于文档签名器。

从 DigiCert Software Trust Manager 迁移

如果您目前使用 smctl 对 Windows 二进制文件签名,sgcSign Server 可通过 DigiCert 提供的 PKCS#11 驱动同一代码签名证书,并在此基础上增加一流的 XAdES / PAdES / CAdES 文档签名支持——在同一守护进程中同时需要代码和文档签名时尤为实用。

从 jsign 迁移

jsign 涵盖多种云 HSM 的 Windows 代码签名。sgcSign Server 在云 HSM 矩阵(AWS KMS、Azure Trusted Signing、Google Cloud KMS、HashiCorp Vault)上与其重叠,并增加了 ETSI 文档签名(PAdES、XAdES、CAdES、ASiC)以及 21 个国家配置文件——在同一密钥需要同时生成代码和文档签名时尤为实用。

从 Adobe Acrobat / Adobe Sign 迁移

Adobe Acrobat 是终端用户工具,而非开发者库。如果您目前要求终端用户在 Acrobat 中签署 PDF,现在希望改为无人值守的服务端 PAdES 签名,sgcSign 提供 PDF 签名器(TsgcPAdESSigner)以及时间戳和 OCSP 客户端,可从构建流水线或后端服务生成 PAdES-T 和 PAdES-LT 签名。

从 iText / Apryse 迁移

iText 和 Apryse 不提供原生 Delphi 绑定,因此 Delphi 应用程序通常通过薄桥接层封装其 .NET 或 Java SDK。sgcSign 从原生 Delphi 和 C++ Builder 代码生成 PAdES-B-B / B-T / B-LT 签名——桥接层消失,同一密钥提供者链在签署 PDF 的同时也可签署 XML、CMS 和 Authenticode 构件。

每项声明,均附链接

上方矩阵中的每个单元格均可追溯至以下官方文档页面、代码仓库或发布说明之一。所有 URL 均已在撰写时进行过 HEAD 检查。

来源URL
sgcSign——产品页面https://www.esegece.com/products/sgcsign/
sgcSign——功能参考https://www.esegece.com/products/sgcsign/features/
sgcSign——密钥提供者https://www.esegece.com/products/sgcsign/key-providers/
sgcSign——国家配置文件https://www.esegece.com/products/sgcsign/profiles/
sgcSign Serverhttps://www.esegece.com/products/sgcsign/server/
Microsoft SignTool——参考文档(learn.microsoft.com)https://learn.microsoft.com/en-us/windows/win32/seccrypto/signtool
Windows SDK 下载(含 SignTool)https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/
osslsigncode——GitHub 仓库https://github.com/mtrojnar/osslsigncode
osslsigncode——发布版本https://github.com/mtrojnar/osslsigncode/releases
Azure Trusted Signing——概述(learn.microsoft.com)https://learn.microsoft.com/en-us/azure/trusted-signing/overview
Azure Trusted Signing——快速入门https://learn.microsoft.com/en-us/azure/trusted-signing/quickstart
DigiCert Software Trust Managerhttps://www.digicert.com/software-trust-manager
DigiCert——smctl 签名客户端https://docs.digicert.com/en/software-trust-manager/client-tools/smctl.html
jsign——项目页面https://ebourg.github.io/jsign/
jsign——GitHub 仓库https://github.com/ebourg/jsign
jsign——发布版本https://github.com/ebourg/jsign/releases
Adobe Acrobat——产品页面https://www.adobe.com/acrobat.html
Adobe Acrobat Sign——产品页面https://www.adobe.com/sign.html
Adobe 批准信任列表(AATL)https://helpx.adobe.com/acrobat/kb/approved-trust-list2.html
iText Core——产品页面https://itextpdf.com/products/itext-core
iText 签名包——API 文档https://api.itextpdf.com/iText/java/9.4.0/com/itextpdf/signatures/package-summary.html
Apryse(PDFTron)——PDF SDKhttps://apryse.com/products/core-sdk/pdf
ETSI EN 319 132——XAdES 规范https://www.etsi.org/deliver/etsi_en/319100_319199/31913201/
ETSI EN 319 142——PAdES 规范https://www.etsi.org/deliver/etsi_en/319100_319199/31914201/
RFC 3161——时间戳协议(TSP)https://datatracker.ietf.org/doc/html/rfc3161
RFC 6960——在线证书状态协议(OCSP)https://datatracker.ietf.org/doc/html/rfc6960
eIDAS 法规(欧盟)第 910/2014 号https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32014R0910

试用 sgcSign

下载免费试用版,在几分钟内从 Delphi 或 C++ Builder 签署您的第一个 PDF、XML 或 Windows 二进制文件。