Agregar firmas digitales a presentaciones en Java
Certificado digital se utiliza para crear una presentación de PowerPoint protegida con contraseña, marcada como creada por una organización o persona específica. El certificado digital se puede obtener contactando a una organización autorizada, una autoridad certificadora. Después de instalar el certificado digital en el sistema, se puede usar para añadir una firma digital a la presentación mediante Archivo -> Información -> Proteger presentación:
Una presentación puede contener más de una firma digital. Después de que se añada la firma digital a la presentación, aparecerá un mensaje especial en PowerPoint:
Para firmar una presentación o comprobar la autenticidad de las firmas de la presentación, Aspose.Slides API proporciona la interfaz IDigitalSignature, la interfaz IDigitalSignatureCollection y el método IPresentation.getDigitalSignatures . Actualmente, las firmas digitales solo son compatibles con el formato PPTX.
Agregar una firma digital desde un certificado PFX
El siguiente ejemplo de código muestra cómo añadir una firma digital desde un certificado PFX:
- Abra el archivo PFX y pase la contraseña PFX al objeto DigitalSignature.
- Añada la firma creada al objeto de presentación.
// Abriendo el archivo de presentación
Presentation pres = new Presentation();
try {
// Crear objeto DigitalSignature con archivo PFX y contraseña PFX
DigitalSignature signature = new DigitalSignature("testsignature1.pfx", "testpass1");
// Comentario de nueva firma digital
signature.setComments("Aspose.Slides digital signing test.");
// Añadir firma digital a la presentación
pres.getDigitalSignatures().add(signature);
// Guardar la presentación
pres.save("SomePresentationSigned.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
Ahora es posible comprobar si la presentación está firmada digitalmente y no ha sido modificada:
// Abrir presentación
Presentation pres = new Presentation("SomePresentationSigned.pptx");
try {
if (pres.getDigitalSignatures().size() > 0)
{
boolean allSignaturesAreValid = true;
System.out.println("Signatures used to sign the presentation: ");
// Verificar si todas las firmas digitales son válidas
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();
}
Preguntas frecuentes
¿Puedo eliminar firmas existentes de un archivo?
Sí. La colección de firmas digitales permite eliminar elementos individuales y limpiarla por completo; después de guardar el archivo, la presentación no tendrá firmas.
¿El archivo se vuelve “solo lectura” después de firmar?
No. Una firma preserva la integridad y la autoría pero no bloquea la edición. Para restringir la edición, combínela con "Solo lectura" o una contraseña.
¿La firma se mostrará correctamente en diferentes versiones de PowerPoint?
La firma se crea para el contenedor OOXML (PPTX). Las versiones modernas de PowerPoint que admiten firmas OOXML muestran correctamente el estado de dichas firmas.