Altbilgi içeriğine atla
ÜRüN KARşıLAşTıRMALARı

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara