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");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");
}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 IfKriptografi 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.

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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.