التوقيع الرقمي في PowerPoint

الشهادة الرقمية تُستخدم لإنشاء عرض PowerPoint محمي بكلمة مرور، مُعلمة كُمنشأة بواسطة منظمة معينة أو شخص معين. يمكن الحصول على الشهادة الرقمية من خلال الاتصال بمنظمة مخولة - سلطة التصديق. بعد تثبيت الشهادة الرقمية في النظام، يمكن استخدامها لإضافة توقيع رقمي للعرض عبر ملف -> معلومات -> حماية العرض:

todo:image_alt_text

يمكن أن يحتوي العرض على أكثر من توقيع رقمي واحد. بعد إضافة التوقيع الرقمي إلى العرض، ستظهر رسالة خاصة في PowerPoint:

todo:image_alt_text

للتوقيع على العرض أو التحقق من مصداقية توقيعات العرض، يوفر Aspose.Slides API واجهة IDigitalSignature وواجهة IDigitalSignatureCollection وطريقة IPresentation.getDigitalSignatures . حالياً، يتم دعم التوقيعات الرقمية لصيغة PPTX فقط.

إضافة توقيع رقمي من شهادة PFX

توضح عينة الكود أدناه كيفية إضافة توقيع رقمي من شهادة PFX:

  1. افتح ملف PFX ومرر كلمة مرور PFX إلى كائن DigitalSignature.
  2. أضف التوقيع الذي تم إنشاؤه إلى كائن العرض.
// فتح ملف العرض
Presentation pres = new Presentation();
try {
    // إنشاء كائن DigitalSignature باستخدام ملف PFX وكلمة مرور PFX 
    DigitalSignature signature = new DigitalSignature("testsignature1.pfx", "testpass1");

    // تعليق التوقيع الرقمي الجديد
    signature.setComments("اختبار التوقيع الرقمي لـ Aspose.Slides.");

    // إضافة التوقيع الرقمي إلى العرض
    pres.getDigitalSignatures().add(signature);

    // حفظ العرض
    pres.save("SomePresentationSigned.pptx", SaveFormat.Pptx);
} finally {
    pres.dispose();
}

الآن من الممكن التحقق مما إذا كان العرض قد تم توقيعه رقمياً ولم يتم تعديله:

// فتح العرض
Presentation pres = new Presentation("SomePresentationSigned.pptx");
try {
    if (pres.getDigitalSignatures().size() > 0)
    {
        boolean allSignaturesAreValid = true;

        System.out.println("التوقيعات المستخدمة لتوقيع العرض: ");

        // التحقق مما إذا كانت جميع التوقيعات الرقمية صالحة
        for (IDigitalSignature signature : pres.getDigitalSignatures())
        {
            System.out.println(signature.getComments() + ", "
                    + signature.getSignTime().toString() + " -- " + (signature.isValid() ? "صالح" : "غير صالح"));
            allSignaturesAreValid &= signature.isValid();
        }

        if (allSignaturesAreValid)
            System.out.println("العرض أصلي، جميع التوقيعات صالحة.");
        else
            System.out.println("تم تعديل العرض منذ التوقيع.");
    }
} finally {
    if (pres != null) pres.dispose();
}