Bezbednost i potpisi
Bezbednost i potpisi
Aspose.PDF FOSS za .NET podržava digitalne potpise PDF‑a, enkripciju zasnovanu na sertifikatima i prilagođene rukovaoce sigurnošću. Koristite PdfSigner za radne tokove potpisivanja i PdfCertificate za upravljanje sertifikatima.
Potpisivanje dokumenta
PdfSigner primenjuje digitalni potpis na PDF koristeći PFX sertifikat.
var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");Verifikacija potpisa
var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");Potpisivanje sa vizuelnim izgledom
signer.SignWithAppearance(doc, cert, signatureField, appearance);Upravljanje sertifikatima
PdfCertificate učitava sertifikate iz PFX fajlova ili DER‑kodiranih fajlova.
// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");
// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");Шифровање засновано на сертификату
CertificateEncryptionOptions šifrira PDF tako da ga mogu otvoriti samo određeni nosioci sertifikata.
var options = new CertificateEncryptionOptions(cert);Prilagođeni rukovaoci sigurnosti
Implementirajte ICustomSecurityHandler za prilagođenu logiku enkripcije i dekripcije.
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; }
}Informacije o algoritmu potpisa
SignatureAlgorithmInfo opisuje algoritam koji se koristi u postojećem potpisu.
var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());Saveti i najbolje prakse
- Uvek potpisujte dokumente kao poslednji korak — svaka izmena nakon potpisivanja poništava potpis.
- Koristite PFX fajlove sa jakim lozinkama za čuvanje sertifikata.
- Verifikujte potpise nakon učitavanja dokumenta kako biste otkrili manipulacije.
- Šifrovanje zasnovano na sertifikatu zahteva javni ključ sertifikata primaoca.
- Implementirajte
ICustomSecurityHandlersamo kada standardno šifrovanje nije dovoljno.
Česti problemi
| Issue | Cause | Fix |
|---|---|---|
| Potpis se prikazuje kao nevažeći | Dokument je izmenjen nakon potpisivanja | Ponovo potpišite nakon što su sve izmene završene |
| Učitavanje PFX‑a ne uspeva | Pogrešna lozinka ili oštećena datoteka | Proverite lozinku i integritet datoteke |
| Šifrovanje sprečava otvaranje | Vlasnička lozinka nije navedena | Koristite ispravnu vlasničku ili korisničku lozinku |
ČPP
Koji algoritmi potpisa su podržani?
RSA sa SHA-256, SHA-384 i SHA-512 je široko podržan. Dostupni algoritmi zavise od tipa ključa sertifikata.
Могу ли да додам више потписа?
Da. Svaki potpis se primenjuje na zasebno polje za potpis u dokumentu.
Da li potpisivanje zahteva komercijalni sertifikat?
Ne. Samopotpisani sertifikati rade za testiranje. Za produkciju, koristite
sertifikat od pouzdanog CA.
Sažetak API referencije
| Class / Method | Description |
|---|---|
PdfSigner | Potpisivanje i verifikacija PDF dokumenata |
PdfSigner.Sign | Primena digitalnog potpisa |
PdfSigner.Verify | Provera validnosti potpisa |
PdfSigner.SignWithAppearance | Potpisivanje vizuelnim poljem za potpis |
PdfCertificate | Učitavač sertifikata za PFX i DER formate |
PdfCertificate.FromPfx | Učitavanje iz PFX fajla sa lozinkom |
PdfCertificate.FromDerFiles | Učitavanje iz DER‑kodiranih fajlova |
CertificateEncryptionOptions | PDF šifrovanje zasnovano na sertifikatu |
ICustomSecurityHandler | Interfejs za prilagođeno šifrovanje/dešifrovanje |
EncryptionParameters | Parametri prosleđeni prilagođenim rukovaocima sigurnosti |
SignatureAlgorithmInfo | Metapodaci o algoritmu potpisa |