Sikkerhed og Signaturer
Sikkerhed og Signaturer
Aspose.PDF FOSS for .NET understøtter PDF digitale signaturer, certifikatbaseret kryptering og brugerdefinerede sikkerhedshåndterere. Brug PdfSigner til signeringsarbejdsgange og PdfCertificate til certifikatstyring.
Underskrift af et dokument
PdfSigner anvender en digital signatur på en PDF ved hjælp af et PFX‑certifikat.
var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");Verificering af signaturer
var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");Signering med en visuel fremtoning
signer.SignWithAppearance(doc, cert, signatureField, appearance);Certifikatstyring
PdfCertificate indlæser certifikater 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");Certifikatbaseret kryptering
CertificateEncryptionOptions krypterer en PDF så kun specificerede certifikatindehavere kan åbne den.
var options = new CertificateEncryptionOptions(cert);Tilpassede sikkerhedshåndterere
Implementér ICustomSecurityHandler for brugerdefineret krypterings- og dekrypteringslogik.
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; }
}Information om signaturalgoritme
SignatureAlgorithmInfo beskriver algoritmen, der bruges i en eksisterende signatur.
var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());Tips og bedste praksis
- Signer altid dokumenter som det sidste trin — enhver ændring efter signering ugyldiggør signaturen.
- Brug PFX-filer med stærke adgangskoder til certifikatlagring.
- Verificer signaturer efter indlæsning af et dokument for at opdage manipulation.
- Certifikatbaseret kryptering kræver modtagerens offentlige nøglecertifikat.
- Implementer
ICustomSecurityHandlerkun når standardkryptering er utilstrækkelig.
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| Signatur vises som ugyldig | Dokumentet ændret efter signering | Underskriv igen, når alle ændringer er afsluttet |
| PFX-indlæsning mislykkes | Forkert adgangskode eller beskadiget fil | Bekræft adgangskoden og filens integritet |
| Kryptering forhindrer åbning | Ejers adgangskode ikke angivet | Brug den korrekte ejer- eller brugeradgangskode |
Ofte stillede spørgsmål
Hvilke signaturalgoritmer understøttes?
RSA med SHA-256, SHA-384 og SHA-512 understøttes almindeligt. De tilgængelige algoritmer afhænger af certifikatets nøgletype.
Kan jeg tilføje flere signaturer?
Ja. Hver signatur anvendes på et separat signaturfelt i dokumentet.
Kræver signering et kommercielt certifikat?
Nej. Selvsignerede certifikater fungerer til test. Til produktion skal du bruge et certifikat fra en betroet CA.
API-referencens oversigt
| Class / Method | Description |
|---|---|
PdfSigner | Signér og verificér PDF-dokumenter |
PdfSigner.Sign | Anvend en digital signatur |
PdfSigner.Verify | Kontrollér signaturens gyldighed |
PdfSigner.SignWithAppearance | Signér med et visuelt signaturfelt |
PdfCertificate | Certifikatindlæser til PFX- og DER-formater |
PdfCertificate.FromPfx | Indlæs fra en PFX-fil med adgangskode |
PdfCertificate.FromDerFiles | Indlæs fra DER-kodede filer |
CertificateEncryptionOptions | Certifikatbaseret PDF-kryptering |
ICustomSecurityHandler | Interface til brugerdefineret kryptering/dekryptering |
EncryptionParameters | Parametre, der videregives til brugerdefinerede sikkerhedshåndterere |
SignatureAlgorithmInfo | Metadata om en signaturs algoritme |