Güvenlik ve İmzalar

Güvenlik ve İmzalar

Aspose.PDF FOSS for .NET, PDF dijital imzaları, sertifika tabanlı şifreleme ve özel güvenlik işleyicilerini destekler. İmzalama iş akışları için PdfSigner ve sertifika yönetimi için PdfCertificate kullanın.


Bir belgeyi imzalama

PdfSigner bir PDF’ye PFX sertifikası kullanarak dijital imza uygular.

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

İmzaları doğrulama

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

Görsel bir görünümle imzalama

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

Sertifika yönetimi

PdfCertificate PFX dosyalarından veya DER kodlu dosyalardan sertifikaları yükler.

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

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

Sertifikaya dayalı şifreleme

CertificateEncryptionOptions bir PDF’yi şifreler, böylece yalnızca belirtilen sertifika sahipleri açabilir.

var options = new CertificateEncryptionOptions(cert);

Özel güvenlik işleyicileri

ICustomSecurityHandler‘yi özel şifreleme ve şifre çözme mantığı için uygulayın.

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; }
}

İmza algoritması bilgisi

SignatureAlgorithmInfo mevcut bir imzada kullanılan algoritmayı tanımlar.

var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());

İpuçları ve En İyi Uygulamalar

  • Belgeleri her zaman son adım olarak imzalayın — imzalamadan sonra yapılan herhangi bir değişiklik imzayı geçersiz kılar.
  • Sertifika depolama için güçlü parolalarla PFX dosyaları kullanın.
  • Belgeyi yükledikten sonra imzaları doğrulayarak müdahaleyi tespit edin.
  • Sertifika tabanlı şifreleme, alıcının genel anahtar sertifikasını gerektirir.
  • Standart şifreleme yetersiz olduğunda yalnızca ICustomSecurityHandler uygulayın.

Yaygın Sorunlar

SorunNedenÇözüm
İmza geçersiz görünüyorİmza sonrası belge değiştirildiTüm değişiklikler tamamlandıktan sonra yeniden imzalayın
PFX yüklemesi başarısızYanlış şifre veya bozuk dosyaŞifreyi ve dosya bütünlüğünü doğrulayın
Şifreleme açılmayı engelliyorSahip şifresi sağlanmadıDoğru sahip veya kullanıcı şifresini kullanın

SSS

Hangi imza algoritmaları destekleniyor?

RSA with SHA-256, SHA-384 ve SHA-512 genellikle desteklenir. Mevcut algoritmalar, sertifikanın anahtar türüne bağlıdır.

Birden fazla imza ekleyebilir miyim?

Evet. Her imza, belgede ayrı bir imza alanına uygulanır.

İmzalama ticari bir sertifika gerektirir mi?

Hayır. Kendinden imzalı sertifikalar test için çalışır. Üretim için, güvenilir bir CA’dan bir
sertifika kullanın.


API Referans Özeti

Class / MethodDescription
PdfSignerPDF belgelerini imzala ve doğrula
PdfSigner.SignDijital imza uygula
PdfSigner.Verifyİmzanın geçerliliğini kontrol et
PdfSigner.SignWithAppearanceGörsel imza alanı ile imzala
PdfCertificatePFX ve DER formatları için sertifika yükleyici
PdfCertificate.FromPfxŞifreli bir PFX dosyasından yükle
PdfCertificate.FromDerFilesDER kodlu dosyalardan yükle
CertificateEncryptionOptionsSertifika tabanlı PDF şifreleme
ICustomSecurityHandlerÖzel şifreleme/şifre çözme için arayüz
EncryptionParametersÖzel güvenlik işleyicilerine iletilen parametreler
SignatureAlgorithmInfoİmzanın algoritmasıyla ilgili üst veri

Ayrıca Bakınız

 Türkçe