Dodawanie podpisów cyfrowych do prezentacji w Javie
Wprowadzenie
Certyfikat cyfrowy służy do tworzenia chronionej hasłem prezentacji PowerPoint, oznaczonej jako utworzonej przez określoną organizację lub osobę. Certyfikat cyfrowy można uzyskać, kontaktując się z autoryzowaną organizacją – jednostką certyfikującą. Po zainstalowaniu certyfikatu cyfrowego w systemie, można go użyć do dodania cyfrowego podpisu do prezentacji, wybierając Plik → Informacje → Chronienie prezentacji:
Prezentacja może zawierać więcej niż jeden cyfrowy podpis. Po dodaniu cyfrowego podpisu do prezentacji, w programie PowerPoint pojawi się specjalna wiadomość:
Aby podpisać prezentację lub sprawdzić autentyczność podpisów w prezentacji, Aspose.Slides API udostępnia IDigitalSignature interfejs, IDigitalSignatureCollection interfejs oraz IPresentation.getDigitalSignatures metodę. Obecnie cyfrowe podpisy są obsługiwane wyłącznie dla formatu PPTX.
Dodaj cyfrowy podpis z certyfikatu PFX
Poniższy przykład kodu pokazuje, jak dodać cyfrowy podpis z certyfikatu PFX:
- Otwórz plik PFX i przekaż hasło PFX do DigitalSignature obiektu.
- Dodaj utworzony podpis do obiektu prezentacji.
// Otwieranie pliku prezentacji
Presentation pres = new Presentation();
try {
// Utwórz obiekt DigitalSignature z plikiem PFX i hasłem PFX
DigitalSignature signature = new DigitalSignature("testsignature1.pfx", "testpass1");
// Dodaj komentarz do 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", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Teraz można sprawdzić, czy prezentacja została cyfrowo podpisana i nie została zmodyfikowana:
// Otwórz prezentację
Presentation pres = new Presentation("SomePresentationSigned.pptx");
try {
if (pres.getDigitalSignatures().size() > 0)
{
boolean allSignaturesAreValid = true;
System.out.println("Signatures used to sign the presentation: ");
// Sprawdź, czy wszystkie podpisy cyfrowe są ważne
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();
}
FAQ
Czy mogę usunąć istniejące podpisy z pliku?
Tak. Kolekcja cyfrowych podpisów obsługuje usuwanie pojedynczych elementów oraz czyszczenie jej w całości; 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ło.
Czy podpis będzie wyświetlany poprawnie w różnych wersjach PowerPointa?
Podpis jest tworzony dla kontenera OOXML (PPTX). Współczesne wersje PowerPointa, które obsługują podpisy OOXML, wyświetlają status takich podpisów poprawnie.