Asignar y Validar Firmas Digitales
Una firma digital garantiza que un archivo de libro es válido y que nadie lo ha alterado. Puede crear una firma digital personal utilizando la herramienta SELFCERT incluida con el paquete de Microsoft Office u otra herramienta. Incluso puede adquirir una firma digital. Después de crear o adquirir una firma digital, debe adjuntarla a su libro. Adjuntar una firma digital es similar a sellar un sobre. Si un sobre llega sellado, tiene cierto nivel de garantía de que nadie ha manipulado su contenido.
La API Aspose.Cells for Java proporciona las clases com.aspose.cells.DigitalSignatureCollection y com.aspose.cells.DigitalSignature para firmar las hojas de cálculo, así como para validarlas.
Firmar las hojas de cálculo
El proceso de firma requiere un certificado, como se discutió anteriormente. Junto con el certificado, uno también debe conocer su contraseña para firmar correctamente las hojas de cálculo utilizando la API de Aspose.Cells.
La siguiente muestra de código demuestra el uso de la API Aspose.Cells for Java para firmar una hoja de cálculo.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(SigningSpreadsheets.class); | |
// Create an instance of DigitalSignatureCollection | |
DigitalSignatureCollection signatures = new DigitalSignatureCollection(); | |
// Load the certificate into an instance of InputStream | |
InputStream inStream = new FileInputStream("d:/temp.pfx"); | |
// Create an instance of KeyStore with PKCS12 cryptography | |
KeyStore inputKeyStore = KeyStore.getInstance("PKCS12"); | |
// Use the KeyStore.load method to load the certificate stream and its password | |
inputKeyStore.load(inStream, KEYSTORE_PASSWORD.toCharArray()); | |
// Create an instance of DigitalSignature and pass the instance of KeyStore, password, comments and time | |
DigitalSignature signature = new DigitalSignature(inputKeyStore, KEYSTORE_PASSWORD, "test for sign", | |
DateTime.getNow()); | |
// Add the instance of DigitalSignature into the collection | |
signatures.add(signature); | |
// Load an existing spreadsheet using the Workbook class | |
Workbook workbook = new Workbook(dataDir + "unsigned.xlsx"); | |
// Set the signature | |
workbook.setDigitalSignature(signatures); | |
// Save the signed spreadsheet | |
workbook.save(dataDir + "signed.xlsx"); |
Validar las hojas de cálculo
La siguiente muestra de código demuestra el uso de la API Aspose.Cells for Java para validar la hoja de cálculo.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(ValidatingSpreadsheets.class); | |
// Load an existing spreadsheet in an instance of Workbook | |
Workbook workbook = new Workbook(dataDir + "signed.xlsx"); | |
// Retrieve the collection of digital signatures from the Workbook | |
DigitalSignatureCollection signatures = workbook.getDigitalSignature(); | |
// Loop over the collection of digital signatures | |
for (DigitalSignature signature : (Iterable<DigitalSignature>) signatures) { | |
// Check the signature status using the isValid property | |
System.out.println(signature.isValid()); | |
} |