Encryption — Aspose.Cells FOSS for Python API Reference

aspose-cells-foss prend en charge le chiffrement et le déchiffrement AES des fichiers XLSX via les fonctions au niveau du module encrypt_xlsx et decrypt_xlsx. Deux classes de paramètres configurent l’algorithme de chiffrement, l’algorithme de hachage et le nombre d’itérations PBKDF2. La valeur par défaut recommandée est AgileEncryptionParameters avec AES-256 et SHA-512.

ColladaSaveOptions: aspose.cells_foss

from aspose.cells_foss import (
    CipherAlgorithm, HashAlgorithm,
    AgileEncryptionParameters, StandardEncryptionParameters,
    encrypt_xlsx, decrypt_xlsx, get_default_encryption_params,
)

CipherAlgorithm

CipherAlgorithm est un IntEnum spécifiant la longueur de la clé AES. Toutes les variantes utilisent AES en mode CBC avec une taille de bloc de 16 octets.

ColladaSaveOptionsBits de cléalg_id
AES_128128
AES_192192
AES_256256

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
algorithm_namestrColladaSaveOptions "AES".
key_bitsintLongueur de la clé AES en bits (128, 192 ou 256).
alg_idintIdentifiant numérique de l’algorithme utilisé dans l’enregistrement de chiffrement OOXML.
key_bytesintLongueur de la clé en octets (key_bits // 8).
block_sizeintColladaSaveOptions 16 (taille du bloc AES en octets).

HashAlgorithm

HashAlgorithm est un IntEnum spécifiant la fonction de hachage utilisée pour la dérivation de clé PBKDF2.

ColladaSaveOptionsOctets de hachagealg_id
SHA120
SHA25632
SHA38448
SHA51264

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
algorithm_namestrNom de la fonction de hachage (p. ex., "SHA-512").
hash_bytesintLongueur du condensat en octets.
alg_idintIdentifiant numérique de l’algorithme utilisé dans l’enregistrement de chiffrement OOXML.

AgileEncryptionParameters

AgileEncryptionParameters configure le schéma de chiffrement Agile (ECMA-376, partie 4), qui est le format par défaut et recommandé pour les fichiers Excel modernes (Excel 2010+).

ColladaSaveOptions

AgileEncryptionParameters(
    cipher_algorithm=CipherAlgorithm.AES_256,
    hash_algorithm=HashAlgorithm.SHA512,
    spin_count=100000
)
ColladaSaveOptionsColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
cipher_algorithmCipherAlgorithmAES_256Longueur de la clé AES à utiliser.
hash_algorithmHashAlgorithmSHA512Fonction de hachage pour la dérivation de clé PBKDF2.
spin_countint100000Nombre d’itérations PBKDF2. Des valeurs plus élevées augmentent la résistance aux attaques par force brute au prix d’un temps d’ouverture/enregistrement plus long.

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
encryption_typestrColladaSaveOptions "agile".
cipher_algorithmCipherAlgorithmChiffrement configuré.
hash_algorithmHashAlgorithmFonction de hachage configurée.
spin_countintNombre d’itérations PBKDF2.
salt_sizeintLongueur du sel en octets (dérivée de la taille du bloc de chiffrement).
block_sizeintTaille du bloc de chiffrement en octets (toujours 16 pour AES).
key_bitsintLongueur de la clé en bits.

StandardEncryptionParameters

StandardEncryptionParameters configure le schéma de chiffrement standard pour la compatibilité avec Excel 2007. Préférez AgileEncryptionParameters pour les nouveaux fichiers.

ColladaSaveOptions

StandardEncryptionParameters(
    cipher_algorithm=CipherAlgorithm.AES_128,
    hash_algorithm=HashAlgorithm.SHA1,
    spin_count=50000
)

Les propriétés reflètent celles de AgileEncryptionParameters. Le encryption_type la propriété est "standard".


Fonctions du module

encrypt_xlsx

encrypt_xlsx(
    input_path: str,
    output_path: str,
    password: str,
    encryption_params=None
) -> None

Lit le fichier XLSX à input_path, le chiffre avec password en utilisant le spécifié encryption_params, et écrit le fichier chiffré à output_path.

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
input_pathstrChemin vers le fichier XLSX source.
output_pathstrChemin de destination pour le fichier chiffré. Peut être le même que input_path pour le chiffrement sur place.
passwordstrMot de passe de chiffrement.
encryption_params`AgileEncryptionParametersStandardEncryptionParameters

decrypt_xlsx

decrypt_xlsx(
    input_path: str,
    output_path: str,
    password: str
) -> bool

Déchiffre le fichier XLSX à input_path en utilisant password et écrit le XLSX en clair dans output_path. Retourne True si le déchiffrement a réussi, False si le mot de passe était incorrect ou si le fichier n’était pas chiffré.

get_default_encryption_params

get_default_encryption_params() -> AgileEncryptionParameters

Retourne un AgileEncryptionParameters instance configurée avec AES_256, SHA512, et spin_count=100000. Utilisez ceci pour inspecter ou cloner les paramètres par défaut de la bibliothèque avant de les personnaliser.


ColladaSaveOptions

Chiffrer un classeur

from aspose.cells_foss import Workbook, encrypt_xlsx, AgileEncryptionParameters, CipherAlgorithm, HashAlgorithm

# 1. Build and save an unencrypted workbook
wb = Workbook()
ws = wb.worksheets[0]
ws.cells["A1"].put_value("Confidential data")
wb.save("report.xlsx")

# 2. Encrypt with default AES-256/SHA-512 settings
encrypt_xlsx("report.xlsx", "report_secure.xlsx", password="MyP@ssw0rd!")

# 3. Alternatively, use a lower spin count for faster open/save cycles during development
params = AgileEncryptionParameters(
    cipher_algorithm=CipherAlgorithm.AES_256,
    hash_algorithm=HashAlgorithm.SHA256,
    spin_count=10000,
)
encrypt_xlsx("report.xlsx", "report_dev.xlsx", password="dev_only", encryption_params=params)

Déchiffrer un classeur

from aspose.cells_foss import decrypt_xlsx, Workbook

success = decrypt_xlsx("report_secure.xlsx", "report_decrypted.xlsx", password="MyP@ssw0rd!")

if success:
    wb = Workbook("report_decrypted.xlsx")
    print(wb.worksheets[0].cells["A1"].value)
else:
    print("Incorrect password or file is not encrypted.")

Ouvrir un fichier chiffré directement

ColladaSaveOptions Workbook le constructeur accepte également un password paramètre pour ouvrir les fichiers chiffrés sans étape de déchiffrement séparée :

from aspose.cells_foss import Workbook

wb = Workbook("report_secure.xlsx", password="MyP@ssw0rd!")
print(wb.worksheets[0].cells["A1"].value)
wb.save("report_updated_secure.xlsx", password="MyP@ssw0rd!")

Voir aussi

 Français