在生产环境中测试,无水印。
随时随地满足您的需求。
获得30天的全功能产品。
几分钟内就能启动并运行。
在您的产品试用期间,全面访问我们的支持工程团队。
数字签名是一种用于验证签署者身份和确保文档完整性的数学算法。 它会创建一个与文档相关联的唯一标识符,并使用只有签名者知道的私钥进行签名。 为了验证数字签名文档的真实性,接收方使用公钥解密签名并确认其有效性。
在本文中,我们将比较如何使用QuestPDF和IronPDF库在C#中将数字签名添加到PDF文档中。 这两个库都提供了强大的PDF操作功能,包括数字签名功能。
数字签名确保文档内容未被篡改,并证明签署者的身份。 这比传统签名提供了更高的安全性。 数字签名在许多国家具有法律约束力,通常用于合同、协议和其他法律文件。
在开始之前,请确保您对 C# 和 .NET Framework 有基本的了解。 您需要安装两个QuestPDF和IronPDF. QuestPDF 可以通过 NuGet 安装,而 IronPDF 可以从 IronPDF 网站下载或通过 NuGet 包管理器下载。
您还需要准备好数字签名,如果没有,网络上有很多资源可以帮助您创建一个新的数字签名。
现在,让我们仔细看看这两个库以及它们如何处理将数字签名应用于PDF文档的任务。
QuestPDF 是一个开源库,专注于使用流畅的API生成PDF文档,能够利用其全面的布局引擎创建复杂的布局。虽然它不太注重PDF的操作,但可以与其他工具结合使用,以便对PDF进行签名。 它还附带一个配套应用程序,使用户可以轻松浏览其PDF的文档结构,并利用热重载功能为您提供实时文档预览,而无需进行代码重新编译。
IronPDF 是一个强大的 .NET 库,提供用于生成和操作 PDF 文档的强大功能。签署PDF文件. 它是为寻求全面且易于使用的解决方案的.NET开发人员设计的。 使用IronPDF,您可以轻松加密 PDF 文档添加标注, 将 HTML 转换为 PDF、提取内容,以及更多!
QuestPDF原生不支持数字签名。 然而,您可以将其与其他库结合使用(比如 BouncyCastle 或 PdfSharp)用于此功能。 在使用QuestPDF生成文档后,您可以使用提供PDF签名工具的库来对其进行签名,例如iTextSharp,但QuestPDF库本身不处理PDF签名。
它提供其他基本形式的PDF安全性,如PDF加密,以及高级PDF创建和设计PDF文档的能力,因此对于那些寻找能够处理基本PDF任务而无需过多复杂功能的PDF库的人来说,它仍然是一个可行的选择。
IronPDF 提供了一个简单的 API 用于使用数字证书签署 PDF。 以下代码演示了如何应用数字签名为使用IronPDF的PDF文件。
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
public class Program
{
static void Main(string[] args)
{
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
}
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;
public class Program
{
static void Main(string[] args)
{
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);
var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
}
}
此代码演示了如何使用IronPDF和X.509证书对PDF文档进行数字签名。 首先,它加载一个现有的PDF(invoice.pdf)到 PdfDocument 对象中。 然后,它从 .pfx 文件中加载证书(IronSoftware.pfx)通过提供密码(Passw0rd)并将标志 X509KeyStorageFlags.Exportable 设置为允许在必要时导出证书的私钥。
接下来,使用加载的证书创建一个PdfSignature对象。 然后将此签名应用于 PDF 文档,实现有效签署。 最后,已签名的PDF被保存为一个名为signed.pdf的新文件。 此过程确保 PDF 已被安全签署,以验证其真实性和完整性。
IronPDF还提供了一种简单的方法来验证数字签名。 您可以调用 VerifyPdfSignatures 方法来检查文档中签名的有效性
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("signed_test_document.pdf");
bool isValid = pdf.VerifyPdfSignatures();
if (isValid)
{
Console.WriteLine("The digital signature is valid.");
}
else
{
Console.WriteLine("The digital signature is invalid or missing.");
}
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("signed_test_document.pdf");
bool isValid = pdf.VerifyPdfSignatures();
if (isValid)
{
Console.WriteLine("The digital signature is valid.");
}
else
{
Console.WriteLine("The digital signature is invalid or missing.");
}
如果文档中的所有签名都有效,则此方法返回true;如果任何签名无效或缺失,则返回false。
易用性:与QuestPDF相比,IronPDF提供了一个更简单的用于签署PDF的API。 QuestPDF 不提供对数字签名的原生支持,需要外部库(例如,BouncyCastle)用于此功能。 相比之下,IronPDF 具有内置的方法用于签名和验证 PDF,使实现数字签名更加简单。
证书管理: 两个库都可以使用证书,但IronPDF通过其内置方法直接处理证书。(例如,SignWithFile)简化流程。 它还允许您指定签名权限,这些功能是 QuestPDF 不提供的。 只需几行代码即可使用 IronPDF 签署 PDF 文档。
数字签名验证:IronPDF提供了一种易于使用的方法(验证Pdf签名)检查PDF中数字签名的有效性,而QuestPDF缺乏此功能,需要依赖外部库进行签名验证。
许可和费用:QuestPDF 是一个开源库,免费使用。 这确实伴随着缺乏高级功能的代价,例如数字签名支持。 IronPDF 对于开发是免费的,此外,它还提供了一系列定价层级。商业许可在购买之前试用。
总之,虽然QuestPDF在创建复杂布局的PDF方面表现出色,但它缺乏对数字签名的原生支持,需要使用像BouncyCastle这样的外部库来实现此功能。 相比之下,IronPDF 提供了一个用于签署和验证数字签名的一体化解决方案,提供了更简单和高效的流程。
对于需要内置完整PDF解决方案的开发人员数字签名功能,IronPDF 是更好的选择,具有广泛的范围功能, 大量文件,以及更多。 然而,QuestPDF 仍然是用于 PDF 生成的强大开源选项,但数字签名需要额外的复杂性。 最终决定取决于项目的需求和所需的简单性程度。