التوقيع الرقمي في PowerPoint
الشهادة الرقمية تُستخدم لإنشاء عرض PowerPoint محمي بكلمة مرور، مُعلّم كأنه تم إنشاؤه بواسطة منظمة أو شخص معين. يمكن الحصول على الشهادة الرقمية عن طريق الاتصال بمنظمة مرخصة - هيئة الشهادات. بعد تثبيت الشهادة الرقمية في النظام، يمكن استخدامها لإضافة توقيع رقمي إلى العرض عبر ملف -> معلومات -> حماية العرض:
يمكن أن يحتوي العرض على أكثر من توقيع رقمي واحد. بعد إضافة التوقيع الرقمي إلى العرض، ستظهر رسالة خاصة في PowerPoint:
لتوقيع العرض أو التحقق من صحة توقيعات العرض، توفر واجهة برمجة تطبيقات Aspose.Slides IDigitalSignature و IDigitalSignatureCollection و IPresentation.DigitalSignatures خاصية. حاليًا، يتم دعم التوقيعات الرقمية لصيغة PPTX فقط.
إضافة توقيع رقمي من شهادة PFX
يظهر نموذج الكود أدناه كيفية إضافة توقيع رقمي من شهادة PFX:
- افتح ملف PFX وأدخل كلمة مرور PFX إلى DigitalSignature الكائن.
- أضف التوقيع الذي تم إنشاؤه إلى كائن العرض.
#[TODO:Exception] RuntimeError: Proxy error(FileNotFoundException): Could not load file or assembly 'System.Security.Cryptography.Xml, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. File was not found.
import aspose.slides as slides
with slides.Presentation() as pres:
# إنشاء كائن DigitalSignature مع ملف PFX وكلمة مرور PFX
signature = slides.DigitalSignature(path + "testsignature1.pfx", "testpass1")
# تعليق على التوقيع الرقمي الجديد
signature.comments = "اختبار التوقيع الرقمي لـ Aspose.Slides."
# إضافة التوقيع الرقمي إلى العرض
pres.digital_signatures.add(signature)
# حفظ العرض
pres.save("SomePresentationSigned.pptx", slides.export.SaveFormat.PPTX)
الآن يمكن التحقق مما إذا كان العرض قد تم توقيعه رقمياً ولم يتم تعديله:
# فتح العرض
with slides.Presentation("SomePresentationSigned.pptx") as pres:
if len(pres.digital_signatures) > 0:
allSignaturesAreValid = True
print("التوقيعات التي تمت استخدامها لتوقيع العرض: ")
# تحقق مما إذا كانت جميع التوقيعات الرقمية صالحة
for signature in pres.digital_signatures :
print(signature.certificate.subject_name.name + ", "
+ signature.sign_time.strftime("yyyy-MM-dd HH:mm") + " -- " + "VALID" if signature.is_valid else "INVALID")
allSignaturesAreValid = allSignaturesAreValid and signature.is_valid
if allSignaturesAreValid:
print("العرض أصلي، جميع التوقيعات صالحة.")
else:
print("تم تعديل العرض منذ التوقيع.")