Dodawanie podpisów cyfrowych do prezentacji w JavaScript

Wstęp

Certyfikat cyfrowy jest używany do tworzenia prezentacji PowerPoint zabezpieczonej hasłem, oznaczonej jako utworzonej przez konkretną organizację lub osobę. Certyfikat cyfrowy można uzyskać, kontaktując się z uprawnioną organizacją – wystawcą certyfikatów. Po zainstalowaniu certyfikatu cyfrowego w systemie można go używać do dodawania podpisu cyfrowego do prezentacji poprzez Plik -> Informacje -> Chroń prezentację:

todo:image_alt_text

Prezentacja może zawierać więcej niż jeden podpis cyfrowy. Po dodaniu podpisu cyfrowego do prezentacji w PowerPoint pojawi się specjalna wiadomość:

todo:image_alt_text

Aby podpisać prezentację lub sprawdzić autentyczność podpisów w prezentacji, Aspose.Slides API udostępnia klasę DigitalSignature, klasę DigitalSignatureCollection oraz metodę Presentation.getDigitalSignatures . Obecnie podpisy cyfrowe są obsługiwane tylko dla formatu PPTX.

Dodawanie podpisu cyfrowego z certyfikatu PFX

Poniższy przykład kodu pokazuje, jak dodać podpis cyfrowy z certyfikatu PFX:

  1. Otwórz plik PFX i przekaż hasło PFX do obiektu DigitalSignature.
  2. Dodaj utworzony podpis do obiektu prezentacji.
// Otwieranie pliku prezentacji
var pres = new aspose.slides.Presentation();
try {
    // Utwórz obiekt DigitalSignature z plikiem PFX i hasłem PFX
    var signature = new aspose.slides.DigitalSignature("testsignature1.pfx", "testpass1");
    // Komentarz nowego podpisu cyfrowego
    signature.setComments("Aspose.Slides digital signing test.");
    // Dodaj podpis cyfrowy do prezentacji
    pres.getDigitalSignatures().add(signature);
    // Zapisz prezentację
    pres.save("SomePresentationSigned.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    pres.dispose();
}

Teraz możesz sprawdzić, czy prezentacja została podpisana cyfrowo i nie została zmodyfikowana:

// Otwórz prezentację
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: ");
        // Sprawdź, czy wszystkie podpisy cyfrowe są ważne
        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();
    }
}

FAQ

Czy mogę usunąć istniejące podpisy z pliku?

Tak. Kolekcja podpisów cyfrowych umożliwia usuwanie pojedynczych elementów oraz całkowite czyszczenie; po zapisaniu pliku prezentacja nie będzie zawierała żadnych podpisów.

Czy plik staje się „tylko do odczytu” po podpisaniu?

Nie. Podpis zachowuje integralność i autorstwo, ale nie blokuje edycji. Aby ograniczyć edycję, połącz go z “Tylko do odczytu” lub hasłem.

Czy podpis będzie wyświetlany poprawnie w różnych wersjach PowerPoint?

Podpis jest tworzony dla kontenera OOXML (PPTX). Nowoczesne wersje PowerPoint obsługujące podpisy OOXML wyświetlają status takich podpisów prawidłowo.