Crypter et décrypter des fichiers Excel avec C++
Microsoft Excel (97 - 365) vous permet de chiffrer et de protéger par mot de passe vos feuilles de calcul. Il utilise des algorithmes fournis par un fournisseur de services cryptographiques (CSP), un ensemble d’algorithmes cryptographiques avec différentes propriétés. Le CSP par défaut est ‘Compatible avec Office 97/2000’ ou ‘Chiffrement faible (XOR)’. Il est important de choisir la bonne longueur de clé de chiffrement. Certains CSP ne prennent pas en charge plus de 40 ou 56 bits. Cela est considéré comme un chiffrement faible. Pour un chiffrement fort, une longueur de clé minimale de 128 bits est requise. Microsoft Windows contient également des CSP qui offrent des types de chiffrement forts, par exemple le ‘Fournisseur cryptographique fort Microsoft’. Pour vous donner une idée, un chiffrement de 128 bits est ce que les banques utilisent pour chiffrer la connexion avec leurs systèmes de banque en ligne.
Aspose.Cells vous permet de chiffrer et de protéger par mot de passe des fichiers Microsoft Excel avec le type de chiffrement de votre choix.
Utilisation de Microsoft Excel
Pour définir les paramètres de chiffrement de fichier dans Microsoft Excel (ici Microsoft Excel 2003) :
- Dans le menu Outils, sélectionnez Options. Une boîte de dialogue apparaîtra.
- Sélectionnez l’onglet Sécurité.
- Saisissez un mot de passe et cliquez sur Avancé
- Choisissez le type de chiffrement et confirmez le mot de passe.
Chiffrer un fichier Excel avec Aspose.Cells
L’exemple suivant montre comment crypter et protéger par mot de passe un fichier Excel à l’aide de l’API Aspose.Cells.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
    Aspose::Cells::Startup();
    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");
    // Path of input excel file
    U16String inputFilePath = srcDir + u"Book1.xls";
    // Path of output excel file
    U16String outputFilePath = outDir + u"encryptedBook1.out.xls";
    // Create workbook
    Workbook workbook(inputFilePath);
    // Specify XOR encryption type
    workbook.SetEncryptionOptions(EncryptionType::XOR, 40);
    // Specify Strong Encryption type (RC4,Microsoft Strong Cryptographic Provider)
    workbook.SetEncryptionOptions(EncryptionType::StrongCryptographicProvider, 128);
    // Password protect the file
    workbook.GetSettings().SetPassword(u"1234");
    // Save the excel file
    workbook.Save(outputFilePath);
    std::cout << "Workbook encrypted successfully!" << std::endl;
    Aspose::Cells::Cleanup();
}
Option de spécification du mot de passe pour modifier
L’exemple suivant montre comment définir l’option Mot de passe pour modifier de Microsoft Excel pour un fichier existant à l’aide de l’API Aspose.Cells.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
    Aspose::Cells::Startup();
    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");
    // Path of input excel file
    U16String inputFilePath = srcDir + u"Book1.xls";
    // Path of output excel file
    U16String outputFilePath = outDir + u"SpecifyPasswordToModifyOption.out.xls";
    // Create workbook
    Workbook workbook(inputFilePath);
    // Set the password for modification
    workbook.GetSettings().GetWriteProtection().SetPassword(u"1234");
    // Save the excel file
    workbook.Save(outputFilePath);
    std::cout << "Password for modification set successfully!" << std::endl;
    Aspose::Cells::Cleanup();
}
Déchiffrer le fichier Excel avec Aspose.Cells
Il est très facile d’ouvrir un fichier Excel protégé par mot de passe et de le décrypter en utilisant l’API Aspose.Cells comme indiqué dans le code suivant :
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
    Aspose::Cells::Startup();
    // Create load options and set password
    LoadOptions loadOptions;
    loadOptions.SetPassword(u"password");
    // Open encrypted Excel file
    Workbook workbook(u"Book1.xlsx", loadOptions);
    // Remove password protection
    workbook.GetSettings().SetPassword(nullptr);
    // Save the modified workbook
    workbook.Save(u"Book1.xlsx");
    std::cout << "Password removed and file saved successfully!" << std::endl;
    Aspose::Cells::Cleanup();
}