Assegnare e convalidare le firme digitali
Una firma digitale fornisce l’assicurazione che un file di cartella di lavoro è valido e che nessuno lo ha alterato. È possibile creare una firma digitale personale utilizzando lo strumento SELFCERT incluso nella suite Microsoft Office o qualsiasi altro strumento. È anche possibile acquistare una firma digitale. Dopo aver creato o acquisito una firma digitale, è necessario allegarla alla cartella di lavoro. Allegare una firma digitale è simile a sigillare una busta. Se una busta arriva sigillata, si ha un certo livello di assicurazione che nessuno ha manomesso il suo contenuto.
L’API Aspose.Cells for Java fornisce le classi com.aspose.cells.DigitalSignatureCollection e com.aspose.cells.DigitalSignature per firmare le cartelle di lavoro e convalidarle.
Firmare le cartelle di lavoro
Il processo di firma richiede un certificato come discusso in precedenza. Insieme al certificato, è necessario avere anche la relativa password per firmare correttamente le cartelle di lavoro utilizzando l’API Aspose.Cells.
Il seguente frammento di codice dimostra l’uso dell’API Aspose.Cells for Java per firmare una cartella di lavoro.
// 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"); |
Convalidare le cartelle di lavoro
Il seguente frammento di codice dimostra l’uso dell’API Aspose.Cells for Java per convalidare la cartella di lavoro.
// 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()); | |
} |