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
ICustomSecurityHandleruygulayın.
Yaygın Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
| İmza geçersiz görünüyor | İmza sonrası belge değiştirildi | Tüm değişiklikler tamamlandıktan sonra yeniden imzalayın |
| PFX yüklemesi başarısız | Yanlış şifre veya bozuk dosya | Şifreyi ve dosya bütünlüğünü doğrulayın |
| Şifreleme açılmayı engelliyor | Sahip ş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 / Method | Description |
|---|---|
PdfSigner | PDF belgelerini imzala ve doğrula |
PdfSigner.Sign | Dijital imza uygula |
PdfSigner.Verify | İmzanın geçerliliğini kontrol et |
PdfSigner.SignWithAppearance | Görsel imza alanı ile imzala |
PdfCertificate | PFX ve DER formatları için sertifika yükleyici |
PdfCertificate.FromPfx | Şifreli bir PFX dosyasından yükle |
PdfCertificate.FromDerFiles | DER kodlu dosyalardan yükle |
CertificateEncryptionOptions | Sertifika 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 |