افزودن امضای دیجیتال به ارائه‌ها در اندروید

مقدمه

گواهی دیجیتال برای ایجاد یک ارائه پاورپوینت محافظت‌شده با رمز عبور استفاده می‌شود که به عنوان ساخته‌شده توسط سازمان یا شخص خاصی علامت‌گذاری شده است. گواهی دیجیتال می‌تواند با تماس با یک سازمان معتبر - مرجع صدور گواهی‌نامه - به‌دست آید. پس از نصب گواهی دیجیتال در سیستم، می‌توان از آن برای افزودن امضای دیجیتال به ارائه از طریق File -> Info -> Protect Presentation استفاده کرد:

todo:image_alt_text

ارائه ممکن است بیش از یک امضای دیجیتال داشته باشد. پس از افزودن امضای دیجیتال به ارائه، یک پیام ویژه در پاورپوینت ظاهر می‌شود:

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 digital signing test.");

    // اضافه کردن امضای دیجیتال به ارائه
    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("Signatures used to sign the presentation: ");

        // بررسی اینکه آیا همه امضاهای دیجیتال معتبر هستند
        for (IDigitalSignature signature : pres.getDigitalSignatures())
        {
            System.out.println(signature.getComments() + ", "
                    + signature.getSignTime().toString() + " -- " + (signature.isValid() ? "VALID" : "INVALID"));
            allSignaturesAreValid &= signature.isValid();
        }

        if (allSignaturesAreValid)
            System.out.println("Presentation is genuine, all signatures are valid.");
        else
            System.out.println("Presentation has been modified since signing.");
    }
} finally {
    if (pres != null) pres.dispose();
}

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

آیا می‌توانم امضاهای موجود در یک فایل را حذف کنم؟

بله. مجموعه امضاهای دیجیتال از حذف آیتم‌های تک‌تکه و پاک‌سازی کامل آن پشتیبانی می‌کند؛ پس از ذخیره‌سازی فایل، ارائه دیگر امضایی نخواهد داشت.

آیا پس از امضای فایل به حالت “فقط‑خواندنی” تبدیل می‌شود؟

خیر. یک امضا، یکپارچگی و نویسندگی را حفظ می‌کند اما ویرایش‌ها را مسدود نمی‌کند. برای محدود کردن ویرایش، آن را با “فقط‑خواندنی” یا یک رمز عبور ترکیب کنید.

آیا امضا در نسخه‌های مختلف پاورپوینت به‌درستی نمایش داده می‌شود؟

امضا برای کانتینر OOXML (PPTX) ایجاد شده است. نسخه‌های جدید PowerPoint که از امضاهای OOXML پشتیبانی می‌کنند، وضعیت این امضاها را به‌درستی نمایش می‌دهند.