Aspose PDF'den IronPDF'e Geçiş Yapın
"İmzalama" IronPDF'de üç farklı anlam ifade eder, ve bunlar birbirlerinin yerine kullanılamazlar: bir sertifika ile desteklenmiş bir oynanmayan dijital imza, el yazısı görüntüsünün görsel bir mührü ve daha sonraki imzalamalar için etkileşimli bir alan. Güvenlik özellikleri farklıdır, bu yüzden kullanım alanları bu çizgi boyunca bölünür. Kriptografik çekirdek, PdfSignature sınıfıdır ve X509Certificate2 bir .pfx veya .p12 dosyasından yüklenir, pdf.Sign(...) ile uygulanır. Bu, kimliği içeriğe bağlar, bu yüzden daha sonraki bir düzenleme imzayı bozar.
Manipülasyona karşı dayanıklı sözleşmeler ve anlaşmalar
Çoğu ekibin ilk olarak ulaştığı budur. Bir sertifika imzası, belgenin otantik ve değiştirilmemiş olduğunu kanıtlar ve bir denetim izi (sebep, konum, iletişim, tarih) ve güvenilir bir zaman damgası yerleştirmenizi sağlar:
using IronPdf;
using IronPdf.Signing;
using System;
var pdf = PdfDocument.FromFile("contract.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Contractual Agreement",
SigningLocation = "Chicago, USA",
SignatureDate = DateTime.Now,
TimeStampUrl = new Uri("http://timestamp.digicert.com"),
TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
};
pdf.Sign(signature);
pdf.SaveAs("contract-signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System;
var pdf = PdfDocument.FromFile("contract.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Contractual Agreement",
SigningLocation = "Chicago, USA",
SignatureDate = DateTime.Now,
TimeStampUrl = new Uri("http://timestamp.digicert.com"),
TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
};
pdf.Sign(signature);
pdf.SaveAs("contract-signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System
Dim pdf = PdfDocument.FromFile("contract.pdf")
Dim signature = New PdfSignature("certificate.pfx", "password") With {
.SigningReason = "Contractual Agreement",
.SigningLocation = "Chicago, USA",
.SignatureDate = DateTime.Now,
.TimeStampUrl = New Uri("http://timestamp.digicert.com"),
.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
}
pdf.Sign(signature)
pdf.SaveAs("contract-signed.pdf")
Güvenilir bir otoriteden alınan bir zaman damgası, bir belgenin ne zaman imzalandığına dair kriptografik kanıt sunar, yerel saatten bağımsız olarak — bu, dosyalama ve düzenlemeli sunumlar için önemlidir.
İmzalamadan sonra belgeleri kilitleme
SignaturePermissions ayarı, daha sonra neyin izin verildiğini kontrol eder: NoChangesAllowed belgeyi kilitler, FormFillingAllowed sadece alan girişi izni verir ve AnnotationsAndFormFillingAllowed ayrıca notlara da izin verir. İzin verilmeyen herhangi bir eylem imzayı geçersiz kılar, bu da verilen sertifikalara, onaylı politikalara ve tamamlanan beyanlara uygundur.
Çok taraflı onay iş akışları
PDF'ler artımlı kaydetmeyi desteklediğinden, bir imza belirli bir revizyona uygulanır. Her onaycı kendi imzasını atar ve geçmişte kimin neyi ne zaman imzaladığı ve neyin değiştiği kaydedilir. Bu, beraber imzalamayı ve sıralı onayları kapsar.
Doğrulama ve denetim kapıları
Bir boru hattı, doğrulanamayan herhangi bir belgeyi reddedebilir, ardından imzaları geri alabilir veya çıkarabilir:
var pdf = PdfDocument.FromFile("signed-report.pdf");
bool valid = pdf.VerifySignatures();
if (!valid)
{
pdf.RemoveSignatures();
pdf.SaveAs("report-unsigned.pdf");
}
var pdf = PdfDocument.FromFile("signed-report.pdf");
bool valid = pdf.VerifySignatures();
if (!valid)
{
pdf.RemoveSignatures();
pdf.SaveAs("report-unsigned.pdf");
}
Dim pdf = PdfDocument.FromFile("signed-report.pdf")
Dim valid As Boolean = pdf.VerifySignatures()
If Not valid Then
pdf.RemoveSignatures()
pdf.SaveAs("report-unsigned.pdf")
End If
Kriptografi olmadan görünür onay
Yalnızca bir imzanın görüntüsüne ihtiyacınız olduğunda, yasal red edilememe yerine, taranmış elle yazılmış bir görüntüyü damga veya filigran özelliğiyle damgalayın. İç onaylar için uygundur, yeter ki ne olduğunu net bir şekilde belirtin.
Damga mı sertifika mı ve iki uyarı
Damgalı bir görüntüyü asla bir sertifika imzası yerine kullanmayın. Bir damga, sayfadaki piksellerdir: kopyalanabilir, doğrulanamaz, belgenin değiştirilmediğine dair bir garanti yoktur. Bir sertifika imzası, kurcalamaya karşı dayanıklıdır ve kimliği içeriğe kriptografik olarak bağlar. Görünüm için damgayı, kanıt için sertifikayı kullanın.
İki şey insanları yanıltır. Sertifikayı X509KeyStorageFlags.Exportable ile yükleyin, aksi takdirde özel anahtar kullanılamaz ve imzalama başarısız olur. Ve eğer bir görüntüleyici yeşil bir işaret yerine bir uyarı gösteriyorsa, sertifika o görüntüleyicinin güvenilir deposunda değildir; İmza hala geçerlidir, ancak güven ayrı olarak sağlanmalıdır.
Sıkça Sorulan Sorular
IronPDF'te PDF imzalamanın üç türü nedir?
IronPDF, (1) kimliği içeriğe bağlayan ve kurcalama durumunda geçersiz olan bir X.509 sertifikası ile desteklenen kriptografik dijital imzalar; (2) sayfaya el ile imzalanmış bir imaj yerleştiren, ancak kriptografik kanıt sunmayan görsel resim damgaları; ve (3) kullanıcıların bir PDF görüntüleyicisi içinde daha sonra imzaladığı etkileşimli imza alanlarını destekler.
C# ile bir PDF'e kurcalandığı belli olan dijital imza nasıl eklerim?
.pfx veya .p12 dosyasından bir X.509 sertifikası yükleyerek, bir PdfSignature nesnesi oluşturun, imzalama nedenini, konumunu, tarihini ve isteğe bağlı olarak güvenilir bir zaman damgası URL'sini ayarlayın, ardından pdf.Sign(signature) çağrısı yapın ve kaydedin.
Bir PDF dijital imzası ile görsel damga arasındaki fark nedir?
Dijital imza, sertifika kimliğini belge içeriğine kriptografik olarak bağlar — sonradan yapılan herhangi bir düzenleme bozar. Görsel damga ise yalnızca sayfada bir görüntüdür: kopyalanabilir, doğrulanamaz ve belgenin değiştirilmediğine dair bir garanti taşımaz. Görünüm için damgaları, yasal kanıt için sertifikaları kullanın.
IronPDF neden 'özel anahtar erişilebilir değil' hatası veriyor?
X.509 sertifikasını X509KeyStorageFlags.Exportable bayrağı ile yükleyin. Onsuz, özel anahtar imzalama için erişilebilir olmaz.
IronPDF'te bir PDF'ten imzaları nasıl doğrular ve kaldırırım?
pdf.VerifySignatures() çağrısıyla tüm imzaların geçerli olup olmadığını kontrol edin. Sonuç yanlışsa, yeniden işleme veya yeniden imzalama öncesinde pdf.RemoveSignatures() çağrısıyla bunları kaldırın.

