Sikkerhet og signaturer
Sikkerhet og signaturer
Aspose.PDF FOSS for .NET støtter PDF digitale signaturer, sertifikatbasert kryptering og tilpassede sikkerhetshåndterere. Bruk PdfSigner for signeringsarbeidsflyter og PdfCertificate for sertifikatadministrasjon.
Signering av et dokument
PdfSigner påfører en digital signatur på en PDF ved bruk av et PFX-sertifikat.
var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");Verifisere signaturer
var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");Signering med et visuelt utseende
signer.SignWithAppearance(doc, cert, signatureField, appearance);Sertifikatadministrasjon
PdfCertificate laster inn sertifikater fra PFX-filer eller DER‑kodede filer.
// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");
// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");Kryptering basert på sertifikat
CertificateEncryptionOptions krypterer en PDF slik at kun angitte sertifikatinhavere kan åpne den.
var options = new CertificateEncryptionOptions(cert);Tilpassede sikkerhetshåndterere
Implementer ICustomSecurityHandler for egendefinert krypterings- og dekrypteringslogikk.
public class MyHandler : ICustomSecurityHandler
{
public void Initialize(EncryptionParameters parameters) { }
public byte[] CalculateEncryptionKey() { /* ... */ return Array.Empty<byte>(); }
public byte[] GetUserKey() { /* ... */ return Array.Empty<byte>(); }
public byte[] GetOwnerKey() { /* ... */ return Array.Empty<byte>(); }
public bool IsOwnerPassword(string password) { /* ... */ return false; }
public bool IsUserPassword(string password) { /* ... */ return false; }
}Informasjon om signaturalgoritme
SignatureAlgorithmInfo beskriver algoritmen som brukes i en eksisterende signatur.
var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());Tips og beste praksis
- Signer alltid dokumenter som siste steg — enhver endring etter signering ugyldiggjør signaturen.
- Bruk PFX-filer med sterke passord for sertifikatlagring.
- Verifiser signaturer etter lasting av et dokument for å oppdage manipulering.
- Sertifikatbasert kryptering krever mottakerens offentlige nøkkelsertifikat.
- Implementer
ICustomSecurityHandlerkun når standardkryptering er utilstrekkelig.
Vanlige problemer
| Problem | Årsak | Løsning |
|---|---|---|
| Signatur vises som ugyldig | Dokumentet er endret etter signering | Signer på nytt etter at alle endringer er fullført |
| PFX-lastingen mislykkes | Feil passord eller korrupte fil | Bekreft passordet og filintegriteten |
| Kryptering hindrer åpning | Eierpassord ikke oppgitt | Bruk riktig eier- eller brukerpassord |
Ofte stilte spørsmål
Hvilke signaturalgoritmer støttes?
RSA med SHA-256, SHA-384 og SHA-512 støttes vanligvis. De tilgjengelige algoritmene avhenger av sertifikatets nøkkeltype.
Kan jeg legge til flere signaturer?
Ja. Hver signatur blir brukt på et eget signaturfelt i dokumentet.
Krever signering et kommersielt sertifikat?
Nei. Selvsignerte sertifikater fungerer for testing. For produksjon, bruk et sertifikat fra en pålitelig CA.
API-referansesammendrag
| Class / Method | Description |
|---|---|
PdfSigner | Signere og verifisere PDF-dokumenter |
PdfSigner.Sign | Påføre en digital signatur |
PdfSigner.Verify | Kontrollere signaturens gyldighet |
PdfSigner.SignWithAppearance | Signere med et visuelt signaturfelt |
PdfCertificate | Sertifikatlaster for PFX- og DER-formater |
PdfCertificate.FromPfx | Laste fra en PFX-fil med passord |
PdfCertificate.FromDerFiles | Laste fra DER-kodede filer |
CertificateEncryptionOptions | Sertifikatbasert PDF-kryptering |
ICustomSecurityHandler | Grensesnitt for egendefinert kryptering/dekryptering |
EncryptionParameters | Parametere som sendes til egendefinerte sikkerhetshåndterere |
SignatureAlgorithmInfo | Metadata om en signaturs algoritme |