Encriptar archivos de Excel con Node.js vía C++

Usar Microsoft Excel

Para configurar los ajustes de cifrado de archivos en Microsoft Excel (aquí Microsoft Excel 2003):

  1. Desde el menú Herramientas, selecciona Opciones. Aparecerá un cuadro de diálogo.
  2. Selecciona la pestaña Seguridad.
  3. Ingresa una contraseña y haz clic en Avanzado.
  4. Elige el tipo de cifrado y confirma la contraseña.

Cifrado con Aspose.Cells for Node.js via C++

El siguiente ejemplo muestra cómo cifrar y proteger con contraseña un archivo de Excel utilizando la API de Aspose.Cells.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "Book1.xls");

// Instantiate a Workbook object.
// Open an excel file.
const workbook = new AsposeCells.Workbook(filePath);

// Specify XOR encryption type.
workbook.setEncryptionOptions(AsposeCells.EncryptionType.XOR, 40);

// Specify Strong Encryption type (RC4, Microsoft Strong Cryptographic Provider).
workbook.setEncryptionOptions(AsposeCells.EncryptionType.StrongCryptographicProvider, 128);

// Password protect the file.
workbook.getSettings().setPassword("1234");

// Save the excel file.
workbook.save(path.join(dataDir, "encryptedBook1.out.xls"));

Especificar la opción de Contraseña para modificar

El siguiente ejemplo muestra cómo establecer la opción de Contraseña para modificar en Microsoft Excel para un archivo existente utilizando la API de Aspose.Cells.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "Book1.xls");

// Instantiate a Workbook object.
// Open an excel file.
const workbook = new AsposeCells.Workbook(filePath);

// Set the password for modification.
workbook.getSettings().getWriteProtection().setPassword("1234");

// Save the excel file.
workbook.save(path.join(dataDir, "SpecifyPasswordToModifyOption.out.xls"));

Verificar la contraseña del archivo cifrado

Para verificar la contraseña del archivo encriptado, Aspose.Cells for Node.js via C++ ofrece el método FileFormatUtil.verifyPassword(Uint8Array, string). Estos métodos aceptan dos parámetros, el flujo de archivo y la contraseña que necesita verificarse. El siguiente fragmento de código muestra el uso del método FileFormatUtil.verifyPassword(Uint8Array, string) para verificar si la contraseña proporcionada es válida o no.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "EncryptedBook1.xlsx");

// Create a Stream object
const fs = require("fs");
const fstream = fs.readFileSync(filePath);

const isPasswordValid = AsposeCells.FileFormatUtil.verifyPassword(fstream, "1234");

console.log("Password is Valid: " + isPasswordValid);

Cifrado/Descifrado de archivos ODS con Aspose.Cells

Aspose.Cells te permite encriptar y desencriptar archivos ODS. El archivo ODS desencriptado puede abrirse tanto en Excel como en OpenOffice, sin embargo, el archivo ODS encriptado solo puede abrirse en OpenOffice tras proporcionar la contraseña. Excel no puede abrir el archivo encriptado de ODS y puede mostrar un mensaje de advertencia. Las opciones de encriptación no son aplicables a archivos ODS, a diferencia de otros tipos de archivos. Para encriptar un archivo ODS, carga el archivo y establece el valor de WorkbookSettings.getPassword() con la contraseña real antes de guardarlo. El archivo ODS encriptado resultante solo puede abrirse en OpenOffice.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const sourceDir = RunExamples.Get_SourceDirectory();
// Output directory
const outputDir = RunExamples.Get_OutputDirectory();

// Open an ODS file
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "sampleODSFile.ods"));

// Password protect the file
workbook.getSettings().setPassword("1234");

// Save the ODS file
workbook.save(path.join(outputDir, "outputEncryptedODSFile.ods"));

Para descifrar un archivo ODS, carga el archivo proporcionando una contraseña en el LoadOptions.getPassword(). Una vez que el archivo está cargado, establece el valor de la cadena WorkbookSettings.getPassword() como nulo.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const sourceDir = path.join(__dirname, "data");
// Output directory
const outputDir = path.join(__dirname, "output");

// Open an encrypted ODS file
const loadOptions = new AsposeCells.LoadOptions(AsposeCells.LoadFormat.Ods);

// Set original password
loadOptions.setPassword("1234");

// Load the encrypted ODS file with the appropriate load options
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "sampleEncryptedODSFile.ods"), loadOptions);

// Set the password to null
workbook.getSettings().setPassword(null);

// Save the decrypted ODS file
workbook.save(outputDir + "outputDecryptedODSFile.ods");