Aggiungi firme digitali alle presentazioni in PHP
Introduzione
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 la classe DigitalSignature, la classe DigitalSignatureCollection e il metodo Presentation::getDigitalSignatures. Attualmente, le firme digitali sono supportate solo per il formato PPTX.
Aggiungi una firma digitale da un certificato PFX
Il codice di esempio seguente dimostra come aggiungere una firma digitale da un certificato PFX:
- Apri il file PFX e passa la password PFX all’oggetto DigitalSignature.
- Aggiungi la firma creata all’oggetto presentazione.
# Apertura del file di presentazione
$pres = new Presentation();
try {
# Crea oggetto DigitalSignature con file PFX e password PFX
$signature = new DigitalSignature("testsignature1.pfx", "testpass1");
# Commenta la nuova firma digitale
$signature->setComments("Aspose.Slides digital signing test.");
# Aggiungi firma digitale alla presentazione
$pres->getDigitalSignatures()->add($signature);
# Salva 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
$pres = new Presentation("SomePresentationSigned.pptx");
try {
if (java_values($pres->getDigitalSignatures()->size()) > 0) {
$allSignaturesAreValid = true;
echo("Signatures used to sign the presentation: ");
# Verifica se tutte le firme digitali sono valide
foreach($pres->getDigitalSignatures() as $signature) {
echo($signature->getComments() . ", " . $signature->getSignTime()->toString() . " -- " . $signature->isValid() ? "VALID" : "INVALID");
$allSignaturesAreValid &= $signature->isValid();
}
if ($allSignaturesAreValid) {
echo("Presentation is genuine, all signatures are valid.");
} else {
echo("Presentation has been modified since signing.");
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Posso rimuovere le firme esistenti da un file?
Sì. La collezione di firme digitali supporta la rimozione di singoli elementi e la pulizia completa; dopo aver salvato il file, la presentazione non avrà firme.
Il file diventa “read-only” dopo la firma?
No. Una firma preserva l’integrità e la paternità ma non blocca le modifiche. Per limitare le modifiche, combinare con “Read-only” or a 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 visualizzano correttamente lo stato di tali firme.