使用 GroupDocs.Signature 在 .NET 中实现自定义序列化的二维码签名

介绍

在当今的数字时代,管理文档真实性在法律、商业和软件开发等各个领域都至关重要。GroupDocs.Signature for .NET 提供强大的功能,可将二维码签名与自定义数据序列化无缝集成到您的应用程序中。

本教程探讨如何使用 GroupDocs.Signature for .NET 中的自定义序列化实现二维码签名,增强文档安全性并提供可定制的签名数据处理方法。

您将学到什么:

  • QR 码中自定义数据序列化的基础知识
  • GroupDocs.Signature for .NET 的环境设置
  • 使用自定义选项实现和搜索二维码签名
  • 现实场景中的实际应用

在深入实施之前,让我们先回顾一些先决条件。

先决条件

要有效地遵循本教程:

所需的库、版本和依赖项

  • GroupDocs.Signature for .NET:确保与您的 .NET Framework 或 .NET Core 版本兼容。
  • 使用 Visual Studio 2019/2022 或其他支持 .NET 项目的 IDE。

环境设置要求

  • 访问存储文档的文件系统。
  • 对 C# 编程有基本的了解,并熟悉面向对象的概念。

知识前提

  • 了解文档安全中的二维码。
  • 熟悉数据序列化概念。

为 .NET 设置 GroupDocs.Signature

要开始使用 GroupDocs.Signature,请设置您的开发环境:

安装 GroupDocs.Signature:

选择您喜欢的安装方法:

.NET CLI

dotnet add package GroupDocs.Signature

包管理器

Install-Package GroupDocs.Signature

NuGet 包管理器 UI 搜索“GroupDocs.Signature”并安装最新版本。

许可证获取步骤

  1. 免费试用: 下载免费试用版 这里.
  2. 临时执照: 申请临时许可证以进行无限制评估。
  3. 购买: 如需长期使用,请购买完整版 GroupDocs 的购买页面.

基本初始化和设置

安装后,在您的 C# 项目中初始化 GroupDocs.Signature:

using GroupDocs.Signature;

// 使用文档路径初始化一个新的签名实例
Signature signature = new Signature("YOUR_DOCUMENT_PATH");

这将设置您的环境以开始实施二维码签名。

实施指南

在本节中,我们将介绍如何使用 GroupDocs.Signature for .NET 实现二维码签名的自定义数据序列化和搜索。

QR码签名的自定义数据序列化

概述: 自定义数据序列化允许您为签名数据定义特定格式,这对于根据应用程序的要求构建信息至关重要。

步骤1:定义签名数据类

创建一个保存签名数据的类:

using System;
using GroupDocs.Signature.Domain;

[CustomSerialization]
private class DocumentSignatureData
{
    [Format("SignID")]
    public string ID { get; set; }

    [Format("SAuth")]
    public string Author { get; set; }

    [Format("SDate", "yyyy-MM-dd")]
    public DateTime Signed { get; set; }

    [Format("SDFact", "N2")]
    public decimal DataFactor { get; set; }

    // 从序列化中排除注释字段
    [SkipSerialization]
    public string Comments { get; set; }
}

解释:

  • 自定义序列化: 将此类标记为自定义数据处理。
  • 格式属性: 定义每个属性的序列化方式,包括格式类型。
  • 跳过序列化: 从序列化中排除某些属性。

步骤 2:使用自定义选项搜索二维码签名

概述: 您可以使用自定义选项在文档中搜索二维码签名,确保高效的文档验证。

设置搜索
using System;
using System.Collections.Generic;
using GroupDocs.Signature;
using GroupDocs.Signature.Options;
using GroupDocs.Signature.Domain.Extensions;

public class SearchForQRCodeWithCustomOptions
{
    public static void Run()
    {
        string filePath = "YOUR_DOCUMENT_DIRECTORY";

        using (Signature signature = new Signature(filePath))
        {
            IDataEncryption encryption = new CustomXOREncryption();

            QrCodeSearchOptions options = new QrCodeSearchOptions()
            {
                AllPages = true,
                DataEncryption = encryption
            };

            try
            {
                List<QrCodeSignature> signatures = signature.Search<QrCodeSignature>(options);

                foreach (var qrCodeSignature in signatures)
                {
                    DocumentSignatureData documentSignatureData = qrCodeSignature.GetData<DocumentSignatureData>();
                    if (documentSignatureData != null)
                    {
                        Console.WriteLine("QRCode signature found with details:");
                        Console.WriteLine("ID: {0}, Author: {1}, Signed: {2}, DataFactor: {3}", 
                            documentSignatureData.ID, documentSignatureData.Author,
                            documentSignatureData.Signed.ToShortDateString(), documentSignatureData.DataFactor);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error during search process: " + ex.Message);
            }
        }
    }
}

解释:

  • 自定义XOREncryption: 实施自定义数据加密以增加安全性。
  • QrCode搜索选项: 配置二维码搜索设置,包括应用自定义数据加密。
  • GetData方法: 从找到的签名中提取序列化数据。

故障排除提示

  • 确保正确指定文档路径以避免出现文件未找到异常。
  • 验证所有依赖项均已安装且为最新,以防止运行时错误。

实际应用

自定义序列化的二维码签名可以应用于各种场景:

  1. 法律合同: 通过在法律文件中嵌入独特的加密签名来增强合同安全性。
  2. 财务文件: 通过安全签名验证确保财务报表的真实性。
  3. 身份验证: 使用序列化的二维码数据实现一个强大的身份验证系统。
  4. 供应链管理: 使用自定义序列化的二维码来跟踪和验证装运文件。
  5. 医疗记录: 通过集成加密的二维码签名来保护患者记录。

性能考虑

为了优化实施的性能:

  • 使用高效的加密算法来最大限度地减少处理时间。
  • 通过在 .NET 应用程序中适当处置未使用的对象和流来优化内存使用情况。
  • 定期更新 GroupDocs.Signature 以利用新版本的改进和错误修复。

结论

本教程探讨了如何使用 GroupDocs.Signature for .NET 实现自定义序列化的二维码签名。按照以下步骤操作,您可以增强文档安全性并有效地自定义签名数据处理。