Migrer d'Aspose PDF vers IronPDF
"Signature" signifie trois choses différentes dans IronPDF, et elles ne sont pas interchangeables : une signature numérique inviolable soutenue par un certificat, un tampon visuel d'une image manuscrite, et un champ interactif pour qu'un utilisateur puisse signer ultérieurement. Leurs propriétés de sécurité diffèrent, de sorte que les cas d'utilisation se divisent selon cette ligne. Le noyau cryptographique est la classe PdfSignature avec un X509Certificate2 chargé à partir d'un fichier .pfx ou .p12, appliqué avec pdf.Sign(...). Cela lie l'identité au contenu, donc toute modification ultérieure rompt la signature.
Contrats et accords infalsifiables
La plupart des équipes recherchent celui-ci en premier. Une signature de certificat prouve que le document est authentique et non altéré, et vous permet d'intégrer une piste d'audit (raison, lieu, contact, date) et un horodatage de confiance :
using IronPdf;
using IronPdf.Signing;
using System;
var pdf = PdfDocument.FromFile("contract.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Contractual Agreement",
SigningLocation = "Chicago, USA",
SignatureDate = DateTime.Now,
TimeStampUrl = new Uri("http://timestamp.digicert.com"),
TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
};
pdf.Sign(signature);
pdf.SaveAs("contract-signed.pdf");Imports IronPdf
Imports IronPdf.Signing
Imports System
Dim pdf = PdfDocument.FromFile("contract.pdf")
Dim signature = New PdfSignature("certificate.pfx", "password") With {
.SigningReason = "Contractual Agreement",
.SigningLocation = "Chicago, USA",
.SignatureDate = DateTime.Now,
.TimeStampUrl = New Uri("http://timestamp.digicert.com"),
.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
}
pdf.Sign(signature)
pdf.SaveAs("contract-signed.pdf")Un horodatage d'une autorité de confiance donne une preuve cryptographique de quand un document a été signé, indépendamment de l'horloge locale — ce qui est important pour les dépôts et les soumissions réglementées.
Verrouillage des documents après signature
Le paramètre SignaturePermissions contrôle ce qui est autorisé par la suite : NoChangesAllowed verrouille le document, FormFillingAllowed permet uniquement la saisie de champs, et AnnotationsAndFormFillingAllowed permet également les notes. Toute action non autorisée invalide la signature, ce qui convient aux certificats émis, aux politiques approuvées et aux déclarations finalisées.
Flux de travail d'approbation multi-parties
Parce que les PDF supportent la sauvegarde incrémentielle, une signature s'applique à une révision spécifique. Chaque approbateur signe le sien, et l'historique enregistre qui a signé quoi, quand, et quelles ont été les modifications. Cela couvre la co-signature et la validation séquentielle.
Vérification et portails d'audit
Un pipeline peut refuser tout document qui échoue à la vérification, puis revenir en arrière ou retirer les signatures :
var pdf = PdfDocument.FromFile("signed-report.pdf");
bool valid = pdf.VerifySignatures();
if (!valid)
{
pdf.RemoveSignatures();
pdf.SaveAs("report-unsigned.pdf");
}Dim pdf = PdfDocument.FromFile("signed-report.pdf")
Dim valid As Boolean = pdf.VerifySignatures()
If Not valid Then
pdf.RemoveSignatures()
pdf.SaveAs("report-unsigned.pdf")
End IfApprobation visible sans cryptographie
Lorsque vous avez juste besoin de l'apparence d'une signature, pas de la non-répudiation légale, tamponnez une image manuscrite scannée avec la fonction de tampon ou de filigrane. C'est bien pour les validations internes, tant que vous restez clair sur ce que c'est.
Tampon ou certificat, et deux pièges
Ne laissez jamais une image tamponnée se substituer à une signature de certificat. Un tampon est des pixels sur une page : copiable, invérifiable, aucune garantie que le document n'est pas altéré. Une signature de certificat est infalsifiable et lie l'identité au contenu cryptographiquement. Utilisez le tampon pour l'apparence, le certificat pour la preuve.
Deux choses piègent les gens. Chargez le certificat avec X509KeyStorageFlags.Exportable, sinon la clé privée ne peut pas être utilisée et la signature échoue. Et si un visualiseur affiche un avertissement plutôt qu'une coche verte, le certificat n'est pas dans le magasin de confiance de ce visualiseur ; la signature est toujours valide, mais la confiance doit être établie séparément.

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.