Digitális aláírások hozzáadása prezentációkhoz PHP-ben

Bevezetés

Digitális tanúsítvány a jelszóval védett powerpoint prezentáció létrehozásához használható, amelyet egy adott szervezet vagy személy készítettnek jelölnek. A digitális tanúsítványt egy hitelesített szervezet - egy tanúsítványkiadó felkeresésével lehet beszerezni. A digitális tanúsítvány telepítése után a rendszerben használható a prezentációhoz digitális aláírás hozzáadásához a File -> Info -> Protect Presentation menüpontban:

todo:image_alt_text

A prezentáció több digitális aláírást is tartalmazhat. Miután a digitális aláírás hozzá lett adva a prezentációhoz, egy speciális üzenet jelenik meg a PowerPointban:

todo:image_alt_text

A prezentáció aláírásához vagy a prezentáció aláírásainak hitelességének ellenőrzéséhez az Aspose.Slides API a DigitalSignature osztályt, a DigitalSignatureCollection osztályt és a Presentation::getDigitalSignatures metódust biztosítja. Jelenleg a digitális aláírások csak a PPTX formátumhoz vannak támogatva.

Digitális aláírás hozzáadása PFX tanúsítványból

Az alábbi kódrészlet bemutatja, hogyan adhatunk digitális aláírást egy PFX tanúsítványból:

  1. Nyissa meg a PFX fájlt, és adja át a PFX jelszót a DigitalSignature objektumnak.
  2. Adja hozzá a létrehozott aláírást a prezentáció objektumhoz.
  # A prezentációs fájl megnyitása
  $pres = new Presentation();
  try {
    # DigitalSignature objektum létrehozása PFX fájllal és PFX jelszóval
    $signature = new DigitalSignature("testsignature1.pfx", "testpass1");
    # Új digitális aláírás megjegyzése
    $signature->setComments("Aspose.Slides digital signing test.");
    # Digitális aláírás hozzáadása a prezentációhoz
    $pres->getDigitalSignatures()->add($signature);
    # Prezentáció mentése
    $pres->save("SomePresentationSigned.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

Most már ellenőrizhető, hogy a prezentáció digitálisan aláírt‑e, és nem módosult‑e:

  # Prezentáció megnyitása
  $pres = new Presentation("SomePresentationSigned.pptx");
  try {
    if (java_values($pres->getDigitalSignatures()->size()) > 0) {
      $allSignaturesAreValid = true;
      echo("Signatures used to sign the presentation: ");
      # Ellenőrizze, hogy az összes digitális aláírás érvényes-e
      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();
    }
  }

GYIK

Eltávolíthatok meglévő aláírásokat egy fájlból?

Igen. A digitális aláírások gyűjteménye támogatja az egyedi elemek eltávolítását és a teljes törlést; a fájl mentése után a prezentációnak nem lesz aláírása.

Válik a fájl aláírás után „csak olvashatóvá”?

Nem. Az aláírás megőrzi a integritást és a szerzői jogot, de nem akadályozza a szerkesztést. A szerkesztés korlátozásához kombinálja azt a “Read-only” vagy jelszó lehetőséggel.

Megjelenik‑e az aláírás helyesen a PowerPoint különböző verzióiban?

Az aláírás az OOXML (PPTX) konténerhez lett létrehozva. A modern PowerPoint verziók, amelyek támogatják az OOXML aláírásokat, helyesen jelenítik meg az ilyen aláírások állapotát.