Aggiungere firme digitali alle presentazioni in Java
Introduzione
Il certificato digitale è usato per creare una presentazione PowerPoint protetta da password, contrassegnata come creata da una determinata organizzazione o persona. Il certificato digitale può essere ottenuto contattando un’organizzazione autorizzata – un’autorità di certificazione. Dopo aver installato il certificato digitale nel sistema, può essere usato per aggiungere una firma digitale alla presentazione tramite File → Info → Proteggi presentazione:
La presentazione può contenere più di una firma digitale. Dopo che la firma digitale è stata aggiunta alla presentazione, appare un messaggio speciale in PowerPoint:
Per firmare la presentazione o verificare l’autenticità delle firme della presentazione, Aspose.Slides API fornisce l’interfaccia IDigitalSignature, l’interfaccia IDigitalSignatureCollection e il metodo IPresentation.getDigitalSignatures . Attualmente, le firme digitali sono supportate solo per il formato PPTX.
Aggiungere una firma digitale da un certificato PFX
Il campione di codice sottostante dimostra come aggiungere una firma digitale da un certificato PFX:
- Aprire il file PFX e passare la password PFX a oggetto DigitalSignature.
- Aggiungere la firma creata all’oggetto presentazione.
// Apertura del file di presentazione
Presentation pres = new Presentation();
try {
// Creare l'oggetto DigitalSignature con file PFX e password PFX
DigitalSignature signature = new DigitalSignature("testsignature1.pfx", "testpass1");
// Commenta la nuova firma digitale
signature.setComments("Aspose.Slides digital signing test.");
// Aggiungi la firma digitale alla presentazione
pres.getDigitalSignatures().add(signature);
// Salva la presentazione
pres.save("SomePresentationSigned.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Ora è possibile verificare se la presentazione è stata firmata digitalmente e non è stata modificata:
// Apri presentazione
Presentation pres = new Presentation("SomePresentationSigned.pptx");
try {
if (pres.getDigitalSignatures().size() > 0)
{
boolean allSignaturesAreValid = true;
System.out.println("Signatures used to sign the presentation: ");
// Verifica se tutte le firme digitali sono valide
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
Posso rimuovere le firme esistenti da un file?
Sì. La raccolta di firme digitali supporta rimuovere elementi individuali e svuotarla completamente ; dopo aver salvato il file, la presentazione non avrà firme.
Il file diventa “read-only” dopo la firma?
No. Una firma preserva integrità e paternità ma non blocca le modifiche. Per limitare la modifica, combinarla con “Read-only” o una password.
La firma verrà visualizzata correttamente in diverse versioni di PowerPoint?
La firma è creata per il contenitore OOXML (PPTX). Le versioni moderne di PowerPoint che supportano le firme OOXML mostrano correttamente lo stato di tali firme.