Säkerhet och signaturer
Säkerhet och signaturer
Aspose.PDF FOSS för .NET stöder PDF‑digitala signaturer, certifikatbaserad kryptering och anpassade säkerhetshanterare. Använd PdfSigner för signeringsarbetsflöden och PdfCertificate för certifikathantering.
Signera ett dokument
PdfSigner tillämpar en digital signatur på en PDF med ett PFX‑certifikat.
var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");Verifiera signaturer
var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");Signering med ett visuellt utseende
signer.SignWithAppearance(doc, cert, signatureField, appearance);Certifikathantering
PdfCertificate laddar certifikat från PFX-filer eller DER‑kodade filer.
// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");
// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");Certifikatbaserad kryptering
CertificateEncryptionOptions krypterar en PDF så att endast angivna certifikatinnehavare kan öppna den.
var options = new CertificateEncryptionOptions(cert);Anpassade säkerhetshanterare
Implementera ICustomSecurityHandler för anpassad krypterings- och 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 signaturalgoritm
SignatureAlgorithmInfo beskriver algoritmen som används i en befintlig signatur.
var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());Tips och bästa praxis
- Signera alltid dokument som sista steg — alla ändringar efter signering ogiltigförklarar signaturen.
- Använd PFX-filer med starka lösenord för certifikatlagring.
- Verifiera signaturer efter att ett dokument har laddats för att upptäcka manipulation.
- Certifikatbaserad kryptering kräver mottagarens offentliga nyckelcertifikat.
- Implementera
ICustomSecurityHandlerendast när standardkryptering är otillräcklig.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
| Signaturen visas som ogiltig | Dokumentet har ändrats efter signering | Signera igen när alla ändringar är slutförda |
| PFX-inläsning misslyckas | Fel lösenord eller skadad fil | Verifiera lösenordet och filens integritet |
| Kryptering hindrar öppning | Ägarlösenord ej angivet | Använd rätt ägarlösenord eller användarlösenord |
Vanliga frågor
Vilka signaturalgoritmer stöds?
RSA med SHA-256, SHA-384 och SHA-512 stöds vanligtvis. De tillgängliga algoritmerna beror på certifikatets nyckeltyp.
Kan jag lägga till flera signaturer?
Ja. Varje signatur tillämpas på ett separat signaturfält i dokumentet.
Kräver signering ett kommersiellt certifikat?
Nej. Självsignerade certifikat fungerar för testning. För produktion, använd ett certifikat från en betrodd CA.
API-referenssammanfattning
| Class / Method | Description |
|---|---|
PdfSigner | Signera och verifiera PDF-dokument |
PdfSigner.Sign | Applicera en digital signatur |
PdfSigner.Verify | Kontrollera signaturens giltighet |
PdfSigner.SignWithAppearance | Signera med ett visuellt signaturfält |
PdfCertificate | Certifikatladdare för PFX- och DER-format |
PdfCertificate.FromPfx | Läs in från en PFX-fil med lösenord |
PdfCertificate.FromDerFiles | Läs in från DER-kodade filer |
CertificateEncryptionOptions | Certifikatbaserad PDF-kryptering |
ICustomSecurityHandler | Gränssnitt för anpassad kryptering/dekryptering |
EncryptionParameters | Parametrar som skickas till anpassade säkerhetshanterare |
SignatureAlgorithmInfo | Metadata om signaturens algoritm |