الأمان والتوقيعات
الأمان والتوقيعات
يدعم 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 بشكل شائع. تعتمد الخوارزميات المتاحة على نوع مفتاح الشهادة.
هل يمكنني إضافة توقيعات متعددة؟
نعم. يتم تطبيق كل توقيع على حقل توقيع منفصل في المستند.
هل يتطلب التوقيع شهادة تجارية؟
لا. الشهادات الموقعة ذاتيًا تعمل للاختبار. للإنتاج، استخدم شهادة من سلطة شهادة موثوقة.
ملخص مرجع API
| Class / Method | Description |
|---|---|
PdfSigner | توقيع والتحقق من مستندات PDF |
PdfSigner.Sign | تطبيق توقيع رقمي |
PdfSigner.Verify | التحقق من صحة التوقيع |
PdfSigner.SignWithAppearance | التوقيع باستخدام حقل توقيع بصري |
PdfCertificate | محمل الشهادات لتنسيقات PFX و DER |
PdfCertificate.FromPfx | التحميل من ملف PFX باستخدام كلمة مرور |
PdfCertificate.FromDerFiles | التحميل من ملفات مشفرة بـ DER |
CertificateEncryptionOptions | تشفير PDF بناءً على الشهادة |
ICustomSecurityHandler | واجهة للتشفير/فك التشفير المخصص |
EncryptionParameters | المعلمات الممررة إلى معالجات الأمان المخصصة |
SignatureAlgorithmInfo | البيانات الوصفية حول خوارزمية التوقيع |