امنیت و امضاها

امنیت و امضاها

Aspose.PDF FOSS for .NET از امضای دیجیتال PDF، رمزنگاری مبتنی بر گواهی‌نامه و هندلرهای امنیتی سفارشی پشتیبانی می‌کند. برای جریان‌های کاری امضا PdfSigner و برای مدیریت گواهی‌نامه PdfCertificate را استفاده کنید.


امضای یک سند

PdfSigner یک امضای دیجیتال را بر روی PDF با استفاده از گواهی PFX اعمال می‌کند.

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

تأیید امضاها

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

امضای با ظاهر بصری

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

مدیریت گواهی

PdfCertificate گواهی‌ها را از فایل‌های PFX یا فایل‌های رمزگذاری‌شده با DER بارگذاری می‌کند.

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

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

رمزنگاری مبتنی بر گواهی

CertificateEncryptionOptions یک PDF را رمزگذاری می‌کند تا فقط دارندگان گواهی‌نامه‌های مشخص بتوانند آن را باز کنند.

var options = new CertificateEncryptionOptions(cert);

دستگیره‌های امنیتی سفارشی

ICustomSecurityHandler را برای منطق رمزنگاری و رمزگشایی سفارشی پیاده‌سازی کنید.

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

اطلاعات الگوریتم امضا

SignatureAlgorithmInfo الگوریتم مورد استفاده در یک امضای موجود را توصیف می‌کند.

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

نکات و بهترین شیوه‌ها

  • همیشه اسناد را به عنوان گام نهایی امضا کنید — هر تغییری پس از امضا، امضا را نامعتبر می‌کند.
  • از فایل‌های PFX با گذرواژه‌های قوی برای ذخیره‌سازی گواهی استفاده کنید.
  • پس از بارگذاری سند، امضاها را برای تشخیص دستکاری بررسی کنید.
  • رمزنگاری مبتنی بر گواهی نیاز به گواهی کلید عمومی گیرنده دارد.
  • ICustomSecurityHandler را فقط زمانی پیاده‌سازی کنید که رمزنگاری استاندارد کافی نباشد.

مسائل رایج

مسئلهدلیلراه‌حل
امضای نشان داده شده نامعتبر استسند پس از امضا تغییر یافته استپس از اتمام تمام تغییرات، دوباره امضا کنید
بارگذاری PFX ناموفق استرمز عبور اشتباه یا فایل خرابرمز عبور و صحت فایل را بررسی کنید
رمزنگاری مانع باز شدن می‌شودرمز مالک ارائه نشده استاز رمز مالک یا کاربر صحیح استفاده کنید

سوالات متداول

کدام الگوریتم‌های امضا پشتیبانی می‌شوند؟

RSA با SHA-256، SHA-384 و SHA-512 معمولاً پشتیبانی می‌شود. الگوریتم‌های موجود به نوع کلید گواهی بستگی دارد.

آیا می‌توانم چند امضا اضافه کنم؟

بله. هر امضا به یک فیلد امضای جداگانه در سند اعمال می‌شود.

آیا امضا نیاز به گواهی تجاری دارد؟

نه. گواهی‌های خودامضا برای تست کار می‌کنند. برای تولید، از یک گواهی از یک CA معتبر استفاده کنید.


خلاصه مرجع API

Class / MethodDescription
PdfSignerامضا و تأیید اسناد PDF
PdfSigner.Signاعمال امضای دیجیتال
PdfSigner.Verifyبررسی اعتبار امضا
PdfSigner.SignWithAppearanceامضا با فیلد امضای بصری
PdfCertificateبارگذار گواهی برای فرمت‌های PFX و DER
PdfCertificate.FromPfxبارگذاری از فایل PFX با رمز عبور
PdfCertificate.FromDerFilesبارگذاری از فایل‌های کدگذاری شده با DER
CertificateEncryptionOptionsرمزنگاری PDF مبتنی بر گواهی
ICustomSecurityHandlerرابط برای رمزنگاری/رمزگشایی سفارشی
EncryptionParametersپارامترهای پاس داده شده به هندلرهای امنیتی سفارشی
SignatureAlgorithmInfoفراداده درباره الگوریتم امضا

همچنین ببینید

 فارسی