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

مقدمه

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

todo:image_alt_text

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

todo:image_alt_text

برای امضای ارائه یا بررسی اصالت امضاهای ارائه، Aspose.Slides API کلاس‌های DigitalSignature، DigitalSignatureCollection و متد Presentation.getDigitalSignatures را فراهم می‌کند. در حال حاضر، امضاهای دیجیتال فقط برای فرمت PPTX پشتیبانی می‌شوند.

افزودن امضای دیجیتال از گواهی PFX

نمونه کد زیر نحوه افزودن امضای دیجیتال از یک گواهی PFX را نشان می‌دهد:

  1. پوشه PFX را باز کنید و رمز عبور PFX را به شیء DigitalSignature پاس دهید.
  2. امضای ایجاد شده را به شیء ارائه اضافه کنید.
// باز کردن فایل ارائه
var pres = new aspose.slides.Presentation();
try {
    // ایجاد شیء DigitalSignature با فایل PFX و رمز عبور PFX
    var signature = new aspose.slides.DigitalSignature("testsignature1.pfx", "testpass1");
    // افزودن توضیح به امضای دیجیتال جدید
    signature.setComments("Aspose.Slides digital signing test.");
    // افزودن امضای دیجیتال به ارائه
    pres.getDigitalSignatures().add(signature);
    // ذخیرهٔ ارائه
    pres.save("SomePresentationSigned.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    pres.dispose();
}

اکنون می‌توان بررسی کرد که آیا ارائه به‌صورت دیجیتال امضا شده است و تغییر نیافته باقی مانده است:

// باز کردن ارائه
var pres = new aspose.slides.Presentation("SomePresentationSigned.pptx");
try {
    if (pres.getDigitalSignatures().size() > 0) {
        var allSignaturesAreValid = true;
        console.log("Signatures used to sign the presentation: ");
        // بررسی معتبر بودن تمام امضاهای دیجیتال
        for (let i = 0; i < pres.getDigitalSignatures().size(); i++) {
        let signature = pres.getDigitalSignatures().get_Item(i);
            console.log((((signature.getComments() + ", ") + signature.getSignTime().toString()) + " -- ") + (signature.isValid() ? "VALID" : "INVALID"));
            allSignaturesAreValid &= signature.isValid();
        }
        if (allSignaturesAreValid) {
            console.log("Presentation is genuine, all signatures are valid.");
        } else {
            console.log("Presentation has been modified since signing.");
        }
    }
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

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

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

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

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

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

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

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