PRODUKT-VERGLEICHE

Digitale Signatur zu PDF in C# mit Itextsharp hinzufügen

Veröffentlicht 18. April 2023
Teilen Sie:

Signieren von PDF-Dokumenten, einschließlich PDF-Dateien. Eine digitale Signatur ist eine mathematische Formel, die zur Authentifizierung und Gewährleistung der Integrität eines elektronischen Dokuments verwendet wird.

In diesem Lernprogramm zeigen wir Ihnen hinzufügen von Informationen zur digitalen Signatur zu einer PDF-Datei datei in C# unter Verwendung der iTextSharp- und IronPDF-Bibliotheken.

Bevor wir uns mit dem Code befassen, sollten wir uns kurz ansehen, was eine digitale Signatur ist und warum sie wichtig ist.

Was ist eine digitale Signatur?

Eine digitale Signatur ist eine mathematische Formel, die zur Authentifizierung und Gewährleistung der Integrität eines elektronischen Dokuments verwendet wird.

Es handelt sich um eine elektronische Signatur, mit der elektronische Dokumente digital unterzeichnet werden können. Digitale Signaturen bieten ein hohes Maß an Sicherheit, und sie sind in vielen Ländern rechtsverbindlich.

Wenn ein Dokument digital signiert wird, wird eine eindeutige digitale Signatur erstellt, die mit dem Dokument verknüpft ist.

Diese Signatur wird mit einem privaten Schlüssel erstellt, der nur dem Unterzeichner bekannt ist. Der Signaturschlüssel enthält Informationen über den Unterzeichner, einschließlich seines Namens, seiner E-Mail-Adresse und anderer Details.

Um die Authentizität eines digital signierten Dokuments zu überprüfen, muss der Empfänger Zugang zum öffentlichen Schlüssel des Unterzeichners haben. Die öffentlichen Schlüssel werden verwendet, um die Signatur zu entschlüsseln und ihre Echtheit zu überprüfen.

Warum sind digitale Signaturen wichtig?

Digitale Signaturen sind wichtig, weil sie ein hohes Maß an Sicherheit bieten und die Integrität digitaler Dokumente gewährleisten.

Sie werden häufig in Situationen verwendet, in denen Dokumente wie Verträge, Vereinbarungen und andere Rechtsdokumente unterzeichnet werden müssen.

Digitale Signaturen bieten mehrere Vorteile gegenüber herkömmlichen Signaturen:

  1. Sie sind sicherer und fälschungssicherer als herkömmliche Unterschriften.

  2. Sie können elektronisch überprüft werden, was die Notwendigkeit einer manuellen Überprüfung verringert.

  3. Mit ihnen können Dokumente von jedem Ort der Welt aus unterzeichnet werden.

  4. Sie bieten ein höheres Maß an Sicherheit als herkömmliche Unterschriften.

Vergleich des Hinzufügens einer digitalen Signatur zu PDF-Dokumenten in C# unter Verwendung der itextsharp- und IronPDF-Bibliotheken

Da wir nun wissen, was eine digitale Signatur ist und warum sie wichtig ist, wollen wir uns ansehen, wie man in C# mit iTextSharp und IronPDF eine digitale Signatur zu einem PDF-Dokument hinzufügt.

Digitale Signaturen werden verwendet, um die Authentizität elektronischer Dokumente zu überprüfen, und PDFs sind ein beliebtes Datenformat für solche Dokumente.

In diesem Tutorial vergleichen wir, wie man PDF-Dateien mit Hilfe von zwei C#-Bibliotheken, iTextSharp und IronPDF, mit digitalen Signaturen versieht.

E-Signaturen: Die Zukunft des digitalen Signierens mit echten Signaturen

iTextSharp ist eine beliebte Open-Source-Bibliothek zur Erstellung und Bearbeitung von PDF-Dokumenten in C#.

Es unterstützt digitale Signaturen und wird häufig in .NET-Projekten verwendet. IronPDF hingegen ist eine kommerzielle Bibliothek, die ähnliche Funktionen für die PDF-Bearbeitung, einschließlich digitaler Signaturen, bietet.

In diesem Tutorial wird gezeigt, wie beide Bibliotheken verwendet werden, um PDF-Dokumente mit digitalen Signaturen zu versehen. Dabei werden Konzepte wie das Erstellen eines digitalen Zertifikats, das Signieren eines PDF-Dokuments mit einem privaten Schlüssel und das Überprüfen der Signatur behandelt. Wir werden auch Beispiele von Quellcode für jeden Schritt bereitstellen.

Voraussetzungen

Bevor wir beginnen, sollten Sie ein Grundverständnis der C#-Programmierung und des .NET-Frameworks haben.

Außerdem müssen Sie die iTextSharp- und IronPDF-Bibliotheken in Ihrem Projekt installiert haben.

Sie können iTextSharp von NuGet herunterladen, und IronPDF kann von der IronPDF-Website heruntergeladen werden.

PDF mit digitaler Signatur programmatisch hinzufügen

Erstellen eines digitalen Zertifikats

IronPDF ist eine .NET-Bibliothek, mit der Sie PDF-Dokumente in C# erstellen, bearbeiten und signieren können. In diesem Leitfaden wird der Prozess des Signierens einer PDF-Datei mit IronPDF und einem X509Certificate2-Objekt erläutert.

Anzeige der Unterzeichnerdetails

Hier sind die Schritte zum Signieren einer PDF-Datei mit IronPDF:

  1. Fügen Sie die erforderlichen Namespaces ein.
    using IronPdf; using IronPdf.Signing; using System.Security.Cryptography.X509Certificates;  
    using IronPdf; using IronPdf.Signing; using System.Security.Cryptography.X509Certificates;  
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates
VB   C#
  1. Rendering des PDF-Dokuments mit der Klasse "ChromePdfRenderer".
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");  
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");  
Dim renderer As New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("foo")
VB   C#

In diesem Beispiel wird ein einfaches HTML-Dokument mit einem einzigen Kopfelement wiedergegeben.

![](/static-assets/pdf/blog/add-digital-signature-topdf-in-csharp-using-itextsharp/add-digital-signature-topdf-in-csharp-using-itextsharp-6.webp)
  1. Laden Sie das Objekt X509Certificate2 mit der digitalen Signatur, die Sie zum Signieren der PDF-Datei verwenden möchten.
    X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);  
    X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);  
Dim cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)
VB   C#

In diesem Beispiel laden wir das Zertifikat aus einer PKCS#12-Datei namens "IronSoftware.pfx" und geben das Passwort "123456" an. Wir setzen auch die X509KeyStorageFlags auf Exportable, damit wir den privaten Schlüssel des Zertifikats zum Signieren der PDF-Datei verwenden können.

![](/static-assets/pdf/blog/add-digital-signature-topdf-in-csharp-using-itextsharp/add-digital-signature-topdf-in-csharp-using-itextsharp-7.webp) 
  1. Erstellen Sie ein PdfSignature-Objekt unter Verwendung des Zertifikats.
    var sig = new PdfSignature(cert);  
    var sig = new PdfSignature(cert);  
Dim sig = New PdfSignature(cert)
VB   C#

In diesem Beispiel erstellen wir ein neues "PdfSignature"-Objekt unter Verwendung des in Schritt 3 erstellten Zertifikatsobjekts.

  1. Signieren Sie das PDF-Dokument mit der Funktion `PdfDocument.Sign()methode und übergibt das in Schritt 4 erstellte Objekt "PdfSignature".
  pdf.Sign(sig);  
  pdf.Sign(sig);  
pdf.Sign(sig)
VB   C#
  1. Speichern Sie das signierte PDF-Dokument in einer Datei.
    pdf.SaveAs("signed.pdf");  
    pdf.SaveAs("signed.pdf");  
pdf.SaveAs("signed.pdf")
VB   C#

Hier ist der vollständige Code:

using IronPdf; 
using IronPdf.Signing; 
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");  
using IronPdf; 
using IronPdf.Signing; 
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("foo");
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

var sig = new PdfSignature(cert);
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");  
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("foo")
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

Private sig = New PdfSignature(cert)
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
VB   C#

IronPDF - Jetzt bei Software.com.br kaufen

Signieren einer PDF-Datei

Sobald wir ein digitales Zertifikat erstellt haben, können wir es zum Signieren einer PDF-Datei verwenden.

Um eine PDF-Datei zu signieren, müssen wir ein neues Signaturobjekt erstellen und seine Eigenschaften festlegen, z. B. die Position der neuen Signatur auf der Seite und den Grund für die Unterzeichnung.

Um eine PDF-Datei mit iTextSharp zu signieren, können wir den folgenden Code verwenden

iTextSharp ist eine beliebte Open-Source-Bibliothek für die Arbeit mit PDF-Dokumenten in C#. Mit iTextSharp können Sie PDF-Dokumente erstellen und bearbeiten und ihnen digitale Signaturen hinzufügen. In diesem Artikel werden wir uns darauf konzentrieren, wie man PDF-Dateien mit iTextSharp signiert.

Um zu beginnen, müssen Sie einen Verweis auf die Datei iTextSharp.dll in Ihr Projekt einfügen. Sie können die neueste Version von iTextSharp von der offiziellen Website herunterladen.

Sobald Sie die iTextSharp-Referenz zu Ihrem Projekt hinzugefügt haben, können Sie die PDFSigner-Bibliothek verwenden, um PDF-Dokumente zu signieren. Die PDFSigner-Bibliothek enthält drei Klassen: Cert, MetaData und PDFSigner.

Die Klasse Cert wird verwendet, um ein Zertifikat zu speichern und die für die Signatur erforderlichen Informationen zu extrahieren. Die Klasse MetaData enthält die PDF-Metadaten, und die Klasse PDFSigner wird verwendet, um die Signatur zu erstellen und sie dem PDF-Dokument hinzuzufügen.

Die Methode processCert wird verwendet, um die digitalen Zertifikate zu lesen und den Eintrag für den privaten Schlüssel zu extrahieren. Er erstellt auch die Kette der digitalen Zertifikate, falls vorhanden.

Die Methode Sign wird verwendet, um ein neues PDF-Dokument mit PDFStamper zu erstellen und ihm eine Signatur hinzuzufügen. Sie können das Erscheinungsbild der Signatur konfigurieren und ihr einen Grund, einen Kontakt und ein Ortsattribut hinzufügen. Mit der Methode "SetCrypto" wird das Dokument mit dem privaten Schlüssel und dem aus der Zertifikatsdatei extrahierten Kettenzertifikat signiert. Schließlich wird die Methode "SetVisibleSignature" verwendet, wenn dem Dokument eine sichtbare Signatur hinzugefügt werden soll.

Das folgende Beispiel zeigt, wie man eine PDF-Datei mit iTextSharp signiert:

using iTextSharp.text.pdf;
using System.IO; 

public void SignPDF(string inputPDF, string outputPDF, string certPath, string certPassword, string reason, string contact, string location, bool visible) { 
  PdfReader reader = new PdfReader(inputPDF);

  //Activate MultiSignatures
  PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true); 

  //To disable Multi signatures uncomment this line: 
  //every new signature will invalidate older ones! 

  //PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  MetaData metadata = new MetaData();
  metadata.setAuthor("John Doe"); 
  metadata.setTitle("Signed PDF Document");
  st.MoreInfo = metadata.getMetaData();
  st.XmpMetadata = metadata.getStreamedMetaData();
  PdfSignatureAppearance sap = st.SignatureAppearance;

  //Read the certificate and extract the private key entry
  Cert myCert = new Cert(certPath, certPassword);
  sap.SetCrypto(myCert.Akp, myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED);
  sap.Reason = reason;
  sap.Contact = contact;
  sap.Location = location; 

  //Add a visible signature to the document if (visible)
  sap.SetVisibleSignature(new iTextSharp.text.Rectangle(100, 100, 250, 150), 1, null);
  st.Close();
}  
using iTextSharp.text.pdf;
using System.IO; 

public void SignPDF(string inputPDF, string outputPDF, string certPath, string certPassword, string reason, string contact, string location, bool visible) { 
  PdfReader reader = new PdfReader(inputPDF);

  //Activate MultiSignatures
  PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true); 

  //To disable Multi signatures uncomment this line: 
  //every new signature will invalidate older ones! 

  //PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  MetaData metadata = new MetaData();
  metadata.setAuthor("John Doe"); 
  metadata.setTitle("Signed PDF Document");
  st.MoreInfo = metadata.getMetaData();
  st.XmpMetadata = metadata.getStreamedMetaData();
  PdfSignatureAppearance sap = st.SignatureAppearance;

  //Read the certificate and extract the private key entry
  Cert myCert = new Cert(certPath, certPassword);
  sap.SetCrypto(myCert.Akp, myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED);
  sap.Reason = reason;
  sap.Contact = contact;
  sap.Location = location; 

  //Add a visible signature to the document if (visible)
  sap.SetVisibleSignature(new iTextSharp.text.Rectangle(100, 100, 250, 150), 1, null);
  st.Close();
}  
Imports Microsoft.VisualBasic
Imports iTextSharp.text.pdf
Imports System.IO

Public Sub SignPDF(ByVal inputPDF As String, ByVal outputPDF As String, ByVal certPath As String, ByVal certPassword As String, ByVal reason As String, ByVal contact As String, ByVal location As String, ByVal visible As Boolean)
  Dim reader As New PdfReader(inputPDF)

  'Activate MultiSignatures
  Dim st As PdfStamper = PdfStamper.CreateSignature(reader, New FileStream(outputPDF, FileMode.Create, FileAccess.Write), ControlChars.NullChar, Nothing, True)

  'To disable Multi signatures uncomment this line: 
  'every new signature will invalidate older ones! 

  'PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(outputPDF, FileMode.Create, FileAccess.Write), '\0'); 

  Dim metadata As New MetaData()
  metadata.setAuthor("John Doe")
  metadata.setTitle("Signed PDF Document")
  st.MoreInfo = metadata.getMetaData()
  st.XmpMetadata = metadata.getStreamedMetaData()
  Dim sap As PdfSignatureAppearance = st.SignatureAppearance

  'Read the certificate and extract the private key entry
  Dim myCert As New Cert(certPath, certPassword)
  sap.SetCrypto(myCert.Akp, myCert.Chain, Nothing, PdfSignatureAppearance.WINCER_SIGNED)
  sap.Reason = reason
  sap.Contact = contact
  sap.Location = location

  'Add a visible signature to the document if (visible)
  sap.SetVisibleSignature(New iTextSharp.text.Rectangle(100, 100, 250, 150), 1, Nothing)
  st.Close()
End Sub
VB   C#

Um eine PDF-Datei mit IronPDF zu signieren, können wir den folgenden Code verwenden

Gehen Sie folgendermaßen vor, um eine PDF-Datei zu signieren:

  1. Fügen Sie den erforderlichen Namespace ein:
    using IronPdf;  
    using IronPdf;  
Imports IronPdf
VB   C#
  1. Laden Sie die PDF-Datei mit der Funktion PdfDocument.FromFile() methode:
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
Dim pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
VB   C#

In diesem Beispiel laden wir eine PDF-Datei namens "annual_census.pdf" aus dem aktuellen Verzeichnis. Diese Methode gibt ein PdfDocument-Objekt zurück, das die geladene PDF-Datei darstellt.

  1. Nehmen Sie alle erforderlichen Änderungen an der PDF-Datei vor.

     In diesem Beispiel wird davon ausgegangen, dass einige Änderungen an der PDF-Datei vorgenommen wurden.
  2. Signieren Sie die PDF-Datei mit der Funktion PdfDocument.SignWithFile() methode:
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed);  
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed);  
pdf.SignWithFile("/assets/IronSignature.p12", "password", Nothing, PdfDocument.SignaturePermissions.FormFillingAllowed)
VB   C#

In diesem Beispiel signieren wir die PDF-Datei mit einer PKCS#12-Datei namens "IronSignature.p12", die sich im Verzeichnis "/assets" befindet. Als zweites Argument geben wir das Passwort für die PKCS#12-Datei an. Das dritte Argument gibt den Grund für das Signieren der PDF-Datei an, den wir mit null angegeben haben. Das vierte Argument gibt die Berechtigungen für die Signatur an, die wir so eingestellt haben, dass nur das Ausfüllen von Formularen erlaubt ist.

  1. Speichern Sie die PDF-Datei mit der Signatur als Revision mit der Funktion PdfDocument.SaveAsRevision() methode:
    PdfDocument pdfWithRevision = pdf.SaveAsRevision();  
    PdfDocument pdfWithRevision = pdf.SaveAsRevision();  
Dim pdfWithRevision As PdfDocument = pdf.SaveAsRevision()
VB   C#

Diese Methode erzeugt ein neues PdfDocument-Objekt, das die ursprüngliche PDF-Datei und die Signatur als Revision enthält.

  1. Speichern Sie die signierte PDF-Datei auf der Festplatte mit der Funktion PdfDocument.SaveAs() methode:
    pdfWithRevision.SaveAs("annual\_census\_2.pdf");  
    pdfWithRevision.SaveAs("annual\_census\_2.pdf");  
pdfWithRevision.SaveAs("annual\_census\_2.pdf")
VB   C#

In diesem Beispiel speichern wir den Dateinamen der signierten PDF-Datei als "annual_census_2.pdf" im aktuellen Verzeichnis.

    Hier ist der vollständige Code:
    using IronPdf; PdfDocument pdf = PdfDocument.FromFile("annual\_census.pdf"); 
    // make any necessary edits 
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed); 
    PdfDocument pdfWithRevision = pdf.SaveAsRevision(); 
    pdfWithRevision.SaveAs("annual\_census_2.pdf");  
    using IronPdf; PdfDocument pdf = PdfDocument.FromFile("annual\_census.pdf"); 
    // make any necessary edits 
    pdf.SignWithFile("/assets/IronSignature.p12", "password", null, PdfDocument.SignaturePermissions.FormFillingAllowed); 
    PdfDocument pdfWithRevision = pdf.SaveAsRevision(); 
    pdfWithRevision.SaveAs("annual\_census_2.pdf");  
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

IronPDF for .NET

Überprüfung von digitalen Signaturen

Nach der Unterzeichnung eines PDF-Dokuments ist es wichtig, die Unterschriften überprüfen zu können, um sicherzustellen, dass das Dokument nach der Unterzeichnung nicht manipuliert wurde.

Überprüfung von digitalen Signaturen mit der iTextSharp-Bibliothek

Um die digitale PDF-Signatur mit iTextSharp in C# zu überprüfen, folgen Sie den nachstehenden Schritten:

  1. Fügen Sie zunächst die iTextSharp-Bibliothek zu Ihrem Projekt hinzu. Sie können dies mit dem NuGet-Paketmanager in Visual Studio tun. Suchen Sie nach iTextSharp und installieren Sie es.

  2. Definieren Sie eine Funktion zur Überprüfung der digitalen Signatur des PDF-Dokuments unter Verwendung der iTextSharp-Bibliothek.

  3. In der Funktion erstellen Sie ein "PDFReader"-Objekt, indem Sie den Pfad des zu prüfenden PDF-Dokuments übergeben.

  4. Als Nächstes werden die AcroFields des PDF-Dokuments mit der Methode GetAcroFields des PdfReader-Objekts ermittelt.

  5. Abrufen der Signaturnamen mit der Methode "GetSignatureNames" des Objekts "ACROFields".

  6. Iterieren Sie durch die Signaturnamen und rufen Sie das "PdfPKCS7"-Objekt für jede Signatur mit der Methode "GetSignature" des "AcroFields"-Objekts ab.

  7. Überprüfen Sie die Signatur mit der Methode "Verify" des Objekts "PdfPKCS7".

  8. Wenn die Signatur gültig ist, wird true zurückgegeben. Andernfalls wird false zurückgegeben.

    Hier ist der Code zum Überprüfen der digitalen Signatur eines PDF-Dokuments mit iTextSharp in C#:

public static bool VerifyPdfDigitalSignature(string filePath)
{
    bool isValid = false;

    try
    {
        // Create a PdfReader object
        PdfReader reader = new PdfReader(filePath);

        // Get the AcroFields of the PDF document
        AcroFields fields = reader.AcroFields;

        // Get the signature names
        List<string> names = fields.GetSignatureNames();

        // Iterate through the signature names
        foreach (string name in names)
        {
            // Get the PdfPKCS7 object for the signature
            PdfPKCS7 pkcs7 = fields.VerifySignature(name);

            // Verify the signature
            if (pkcs7.Verify())
            {
                isValid = true;
            }
            else
            {
                isValid = false;
            }
        }

        reader.Close();
    }
    catch (Exception ex)
    {
        // Handle exception
        isValid = false;
    }

    return isValid;
}
public static bool VerifyPdfDigitalSignature(string filePath)
{
    bool isValid = false;

    try
    {
        // Create a PdfReader object
        PdfReader reader = new PdfReader(filePath);

        // Get the AcroFields of the PDF document
        AcroFields fields = reader.AcroFields;

        // Get the signature names
        List<string> names = fields.GetSignatureNames();

        // Iterate through the signature names
        foreach (string name in names)
        {
            // Get the PdfPKCS7 object for the signature
            PdfPKCS7 pkcs7 = fields.VerifySignature(name);

            // Verify the signature
            if (pkcs7.Verify())
            {
                isValid = true;
            }
            else
            {
                isValid = false;
            }
        }

        reader.Close();
    }
    catch (Exception ex)
    {
        // Handle exception
        isValid = false;
    }

    return isValid;
}
Public Shared Function VerifyPdfDigitalSignature(ByVal filePath As String) As Boolean
	Dim isValid As Boolean = False

	Try
		' Create a PdfReader object
		Dim reader As New PdfReader(filePath)

		' Get the AcroFields of the PDF document
		Dim fields As AcroFields = reader.AcroFields

		' Get the signature names
		Dim names As List(Of String) = fields.GetSignatureNames()

		' Iterate through the signature names
		For Each name As String In names
			' Get the PdfPKCS7 object for the signature
			Dim pkcs7 As PdfPKCS7 = fields.VerifySignature(name)

			' Verify the signature
			If pkcs7.Verify() Then
				isValid = True
			Else
				isValid = False
			End If
		Next name

		reader.Close()
	Catch ex As Exception
		' Handle exception
		isValid = False
	End Try

	Return isValid
End Function
VB   C#

Im obigen Code nimmt die Funktion "VerifyPdfDigitalSignature" den Pfad des PDF-Dokuments als Parameter und gibt einen booleschen Wert zurück, der angibt, ob die digitale Signatur gültig ist oder nicht.

Beachten Sie, dass die Funktion alle Signaturen im PDF-Dokument prüft. Wenn Sie nur eine bestimmte Unterschrift überprüfen wollen, können Sie den Namen der Unterschrift als Parameter an die Methode VerifySignature übergeben.

Überprüfung von digitalen Signaturen mit der IronPDF-Bibliothek

Wenn Sie ein PDF-Dokument haben, das eine oder mehrere digitale Signaturen enthält, können Sie IronPDF verwenden, um die Signatur zu überprüfen und sicherzustellen, dass das Dokument nicht manipuliert wurde. Mit der IronPDF-Methode "VerifyPdfSignatures" können Sie dies tun:

  1. Laden des PDF-Dokuments Zunächst müssen Sie das PDF-Dokument mit der Methode PdfDocument.FromFile von IronPDF laden. Diese Methode nimmt den Dateipfad als Parameter und gibt ein PdfDocument-Objekt zurück, das das PDF-Dokument darstellt.
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
    PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");  
Dim pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
VB   C#
  1. Überprüfen der Signaturen Sobald Sie das PdfDocument-Objekt haben, können Sie die Methode VerifyPdfSignatures aufrufen, um alle Signaturen im Dokument zu überprüfen. Diese Methode gibt einen booleschen Wert zurück, der angibt, ob alle Signaturen gültig sind oder nicht.
    bool isValid = pdf.VerifyPdfSignatures();  
    bool isValid = pdf.VerifyPdfSignatures();  
Dim isValid As Boolean = pdf.VerifyPdfSignatures()
VB   C#
  1. Umgang mit dem Ergebnis Die Methode VerifyPdfSignatures gibt einen booleschen Wert zurück, der angibt, ob alle Signaturen im Dokument gültig sind oder nicht. Wenn der Wert true ist, bedeutet dies, dass alle Unterschriften gültig sind und das Dokument nicht manipuliert wurde. Ist der Wert falsch, bedeutet dies, dass eine oder mehrere Signaturen ungültig sind und das Dokument möglicherweise manipuliert wurde.

    Anhand dieser Informationen können Sie geeignete Maßnahmen ergreifen, z. B. dem Benutzer eine Meldung anzeigen oder die weitere Bearbeitung des Dokuments verhindern.

    Hier ist der vollständige Codeausschnitt, der zeigt, wie alle Signaturen in einem PDF-Dokument mit IronPDF überprüft werden können:

using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");
bool isValid = pdf.VerifyPdfSignatures();

if (isValid)
{
    Console.WriteLine("All signatures are valid");
}
else
{
    Console.WriteLine("One or more signatures are invalid");
}
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf");
bool isValid = pdf.VerifyPdfSignatures();

if (isValid)
{
    Console.WriteLine("All signatures are valid");
}
else
{
    Console.WriteLine("One or more signatures are invalid");
}
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf")
Private isValid As Boolean = pdf.VerifyPdfSignatures()

If isValid Then
	Console.WriteLine("All signatures are valid")
Else
	Console.WriteLine("One or more signatures are invalid")
End If
VB   C#

Lizenzierung und Preisgestaltung

die iTextSharp- und IronPDF-Bibliotheken haben unterschiedliche Lizenzen und Preismodelle, was bei der Auswahl für Ihr Projekt ein wichtiger Faktor sein kann.

iTextSharp ist lizenziert unter der Affero General Public License (AGPL)die AGPL ist eine Copyleft-Lizenz, die verlangt, dass jede Software, die iTextSharp verwendet, auch unter der AGPL lizenziert wird.

Es sind jedoch auch kommerzielle Lizenzen für iTextSharp erhältlich, die es Entwicklern ermöglichen, die Bibliothek in proprietärer Software zu verwenden, ohne ihren Quellcode freigeben zu müssen.

Die Preise für kommerzielle iTextSharp-Lizenzen variieren je nach Anzahl der Entwickler und Einsatzinstanzen.

IronPDF hingegen ist eine kommerzielle Bibliothek, für deren Nutzung eine kostenpflichtige Lizenz erforderlich ist. Die Preisgestaltung für IronPDF basiert auf der Anzahl der Entwickler und Bereitstellungsinstanzen, ähnlich wie bei iTextSharp.

IronPDF bietet den Nutzern aber auch eine kostenlose Testversion mit eingeschränkter Funktionalität, die für nicht-kommerzielle Projekte genutzt werden kann.

In Bezug auf preisgestaltungironPDF ist möglicherweise die bessere Wahl für kleinere Projekte oder Projekte mit begrenztem Budget, da die kostenlose Testversion einige Funktionen kostenlos zur Verfügung stellt.

Für größere Projekte oder Projekte mit speziellen Lizenzanforderungen kann iTextSharp jedoch aufgrund seines dualen Lizenzierungsmodells und der Unterstützung der AGPL die bessere Wahl sein.

Schlussfolgerung

IronPDF und iTextSharp sind zwei beliebte Bibliotheken für die Arbeit mit PDF-Dateien in C#. Obwohl beide Bibliotheken ähnliche Funktionen für die Arbeit mit PDF-Dokumenten bieten, gibt es einige Unterschiede zwischen ihnen, die Entwickler bei der Wahl der zu verwendenden Bibliothek berücksichtigen sollten.

Vom technischen Standpunkt aus betrachtet ist IronPDF eine moderne .NET-Bibliothek, die eine einfache und intuitive API für die Arbeit mit PDF-Dateien bietet. Es unterstützt eine breite Palette von PDF-Funktionen, einschließlich Text, Bilder, Formulare und digitale Signaturen. IronPDF bietet auch fortgeschrittene Funktionen wie HTML-zu-PDF-Konvertierung und PDF-Bearbeitung.

Auf der anderen Seite ist iTextSharp eine ausgereifte PDF-Bibliothek mit einer komplexeren API, die möglicherweise mehr Lernaufwand erfordert. Allerdings bietet iTextSharp erweiterte Funktionen wie Low-Level-PDF-Manipulation und Unterstützung für eine breite Palette von PDF-Standards.

Hinsichtlich der Lizenzierung bietet IronPDF ein einfaches kommerzielles Lizenzmodell, das es Entwicklern erlaubt, die Bibliothek in proprietärer Software zu verwenden, ohne ihren Quellcode freigeben zu müssen. Dies erleichtert Entwicklern die Verwendung von IronPDF in kommerziellen Projekten, ohne sich Gedanken über die Einhaltung der Lizenzbestimmungen machen zu müssen. iTextSharp hingegen bietet ein duales Lizenzierungsmodell mit einer freien AGPL-Lizenz und einer kommerziellen Lizenz für proprietäre Software. Dies gibt den Entwicklern zwar mehr Flexibilität, kann aber auch komplizierter zu handhaben sein.

Aus technischer Sicht bietet IronPDF eine modernere und intuitivere API, die für Entwickler einfacher zu handhaben sein dürfte. Darüber hinaus bietet IronPDF erweiterte Funktionen wie HTML-zu-PDF-Konvertierung und PDF-Bearbeitung, die für bestimmte Projekte nützlich sein können. Allerdings bietet iTextSharp fortgeschrittenere Funktionen wie Low-Level-PDF-Manipulation und Unterstützung für eine breite Palette von PDF-Standards.

IronPDF steht den Nutzern für einen kostenloser Test und können lizenziert für die kommerzielle Nutzung mit seinem Lite-Paket ab nur 499 $.

Schließlich bietet IronPDF eine Sonderaktion an, bei der Entwickler alle 6 Produkte von Iron Software zum Preis von zwei kaufen können Iron Software produkte. Dadurch können Entwickler zu einem erschwinglichen Preis Zugang zu einer breiten Palette leistungsstarker .NET-Bibliotheken erhalten.

< PREVIOUS
Ein Vergleich zwischen Wkhtmltopdf in Windows und IronPDF
NÄCHSTES >
Ein Vergleich zwischen IronPDF und ExpertPDF for .NET

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >