Шифрование Excel файлов с помощью Node.js через C++

Использование Microsoft Excel

Для установки параметров шифрования файла в Microsoft Excel (например, Microsoft Excel 2003):

  1. Из меню Инструменты выберите Параметры. Появится диалоговое окно.
  2. Выберите вкладку Безопасность.
  3. Введите пароль и нажмите Дополнительно.
  4. Выберите тип шифрования и подтвердите пароль.

Шифрование с помощью Aspose.Cells for Node.js via C++

В следующем примере показано, как зашифровать и защитить паролем файл Excel с использованием API 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"));

Указание опции ‘Пароль на изменение’

В следующем примере показано, как установить опцию ‘Пароль на изменение’ для существующего файла Microsoft Excel с помощью API 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"));

Проверьте пароль зашифрованного файла

Для проверки пароля зашифрованного файла, Aspose.Cells for Node.js via C++ предоставляет метод FileFormatUtil.verifyPassword(Uint8Array, string). Эти методы принимают два параметра: поток файла и пароль, который необходимо проверить. Следующий фрагмент кода демонстрирует использование метода FileFormatUtil.verifyPassword(Uint8Array, string) для проверки, является ли предоставленный пароль допустимым или нет.

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);

Шифрование/дешифрование файла ODS с помощью Aspose.Cells

Aspose.Cells позволяет шифровать и расшифровывать файлы ODS. Расшифрованный файл ODS можно открыть как в Excel, так и в OpenOffice, однако зашифрованный файл ODS может быть открыт только в OpenOffice после ввода пароля. Excel не сможет открыть зашифрованный файл ODS и может вывести предупреждающее сообщение. Параметры шифрования неприменимы к файлам ODS, в отличие от других типов файлов. Для шифрования ODS файла загрузите его и установите значение WorkbookSettings.getPassword() равным действующему паролю перед сохранением. Финальный зашифрованный файл ODS можно открыть только в 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"));

Для расшифровки файла ODS загрузите файл, предоставив пароль в LoadOptions.getPassword(). После загрузки файла установите строку WorkbookSettings.getPassword() в null.

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");