Menambahkan Tanda Tangan Digital ke Presentasi dalam C++

Introduction

Sertifikat digital digunakan untuk membuat presentasi PowerPoint yang dilindungi kata sandi, ditandai sebagai dibuat oleh organisasi atau orang tertentu. Sertifikat digital dapat diperoleh dengan menghubungi organisasi yang berwenang – otoritas sertifikat. Setelah menginstal sertifikat digital ke dalam sistem, sertifikat tersebut dapat digunakan untuk menambahkan tanda tangan digital ke presentasi melalui File -> Info -> Protect Presentation:

todo:image_alt_text

Presentasi dapat berisi lebih dari satu tanda tangan digital. Setelah tanda tangan digital ditambahkan ke presentasi, pesan khusus akan muncul di PowerPoint:

todo:image_alt_text

Untuk menandatangani presentasi atau memeriksa keaslian tanda tangan presentasi, Aspose.Slides API menyediakan IDigitalSignature interface, IDigitalSignatureCollection interface, dan IPresentation.DigitalSignatures method. Saat ini, tanda tangan digital hanya didukung untuk format PPTX.

Add a Digital Signature from a PFX Certificate

Contoh kode di bawah ini menunjukkan cara menambahkan tanda tangan digital dari sertifikat PFX:

  1. Buka file PFX dan berikan kata sandi PFX ke DigitalSignature object.
  2. Tambahkan tanda tangan yang dibuat ke objek presentasi.
auto pres = System::MakeObject<Presentation>();

// Buat objek DigitalSignature dengan file PFX dan kata sandi PFX
auto signature = System::MakeObject<DigitalSignature>(u"testsignature1.pfx", u"testpass1");

// Komentari tanda tangan digital baru
signature->set_Comments(u"Aspose.Slides digital signing test.");

// Tambahkan tanda tangan digital ke presentasi
pres->get_DigitalSignatures()->Add(signature);

// Simpan presentasi
pres->Save(u"SomePresentationSigned.pptx", SaveFormat::Pptx);

Sekarang Anda dapat memeriksa apakah presentasi telah ditandatangani secara digital dan belum dimodifikasi:

// Buka presentasi
auto pres = System::MakeObject<Presentation>(u"SomePresentationSigned.pptx");

if (pres->get_DigitalSignatures()->get_Count() > 0)
{
    bool allSignaturesAreValid = true;

    Console::WriteLine(u"Signatures used to sign the presentation: ");

    // Periksa apakah semua tanda tangan digital valid
    for (auto signature : pres->get_DigitalSignatures())
    {
        Console::WriteLine(signature->get_Certificate()->get_SubjectName()->get_Name() 
            + u", " 
            + signature->get_SignTime().ToString(u"yyyy-MM-dd HH:mm") 
            + u" -- " 
            + (signature->get_IsValid() ? System::String(u"VALID") : System::String(u"INVALID")));
        allSignaturesAreValid &= signature->get_IsValid();
    }

    if (allSignaturesAreValid)
    {
        Console::WriteLine(u"Presentation is genuine, all signatures are valid.");
    }
    else
    {
        Console::WriteLine(u"Presentation has been modified since signing.");
    }
}

FAQ

Apakah saya dapat menghapus tanda tangan yang ada dari file?

Ya. Koleksi tanda tangan digital mendukung menghapus item individual dan mengosongkannya sepenuhnya; setelah Anda menyimpan file, presentasi tidak akan memiliki tanda tangan.

Apakah file menjadi “read-only” setelah ditandatangani?

Tidak. Tanda tangan menjaga integritas dan kepengarangan tetapi tidak menghalangi penyuntingan. Untuk membatasi penyuntingan, kombinasikan dengan “Read-only” atau kata sandi.

Apakah tanda tangan akan ditampilkan dengan benar di versi PowerPoint yang berbeda?

Tanda tangan dibuat untuk kontainer OOXML (PPTX). Versi PowerPoint modern yang mendukung tanda tangan OOXML menampilkan status tanda tangan tersebut dengan benar.