Osiguranje i potpisi

Osiguranje i potpisi

Aspose.PDF FOSS for .NET supports PDF digital signatures, certificate-based Korišćenje: PdfSigner za potpisivanje radni tokovi i PdfCertificate za upravljanje certifikatom.


Potpisivanje dokumenta

PdfSigner U slučaju da je to moguće, podnositelj zahtjeva može zatražiti od strane nadležnog tijela da se u skladu s člankom 13. stavku 1. točke (a) provede postupak o odobrenju.

var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");

Potvrđivanje potpisa

var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");

Potpis s vizualnim izgledom

signer.SignWithAppearance(doc, cert, signatureField, appearance);

Upravljanje certifikatom

PdfCertificate U ovom slučaju, podnositelj zahtjeva može zatražiti od strane nadležnog tijela da odobri ispitivanje.

// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");

// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");

Krijtacija na temelju certifikata

CertificateEncryptionOptions šifrira PDF tako da samo određeni certifikat -Sve je u redu.

var options = new CertificateEncryptionOptions(cert);

Službenici za sigurnosnu zaštitu

Izvršenje ICustomSecurityHandler za prilagođenu šifriranje i logiku dekriptacije.

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());

Savjeti i najbolje prakse

  • Potpisati se uvijek kao posljednji korak Svaka izmjena nakon potpisivanja poništava potpis.
  • Koristite PFX datoteke s snažnim lozinkama za pohranu certifikata.
  • Potvrditi potpise nakon učitavanja dokumenta kako bi se otkrilo da je bilo kakvo prerađivanje.
  • Za šifriranje na temelju certifikata potreban je certificat javnog ključa primatelja.
  • Izvršenje ICustomSecurityHandler samo ako standardna enkripcija nije dovoljna.

Zajednički problemi

IzdavanjeUzrokPopraviti
Potpis je nevaljan.Uredba (EZ) br.Ponovno potpisati nakon što su sve promjene završene.
Neuspjeh u punjenju PFX-aPogrešna lozinka ili pokvarena datotekaPotvrditi lozinku i integritet datoteke
Kriptovanje sprečava otvaranje.Neopisana lozinka vlasnikaKoristite ispravnu vlasnik ili korisničku lozinku

FAQ

Koje su podržane algoritme potpisa?

RSA s SHA-256, Sha-384 i SHa-512 su obično podržani. Dostupni algoritmi ovisno o tipu ključa certifikata.

Mogu li dodati više potpisa?

Da, svaki potpis primjenjuje se na zasebno polje za potpisivanje u dokumentu.

Da li je za potpisivanje potrebno trgovačko potvrde?

Ne, samo-potpisani certifikati rade za testiranje. Za proizvodnju koristite sertifikat od pouzdanog CA-a.


Svrha referentnog API-a

Klasa / metodaOpisivanje
PdfSignerPotpisati i provjeriti PDF dokumente
PdfSigner.SignPrimjenjuje se digitalni potpis
PdfSigner.VerifyProvjeriti valjanost potpisa
PdfSigner.SignWithAppearanceOznaka s vizualnim poljem potpisa
PdfCertificateUređaj za punjenje certifikata u PFX i DER formatu
PdfCertificate.FromPfxUplatiti s PFX datoteke sa lozinkom
PdfCertificate.FromDerFilesOpterećenje iz DER-kodiranih datoteka
CertificateEncryptionOptionsKripcija PDF-a na temelju certifikata
ICustomSecurityHandlerInterfejs za prilagođeno šifriranje/dešifrovanje
EncryptionParametersU ovom slučaju, u skladu s člankom 16. stavkom 1. točkom (a) Uredbe (EU) br.
SignatureAlgorithmInfoMetapodatki o algoritmu potpisa

Također pogledajte:

 Hrvatski