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.
| ColladaSaveOptions | Bits de clé | alg_id |
|---|---|---|
AES_128 | 128 | — |
AES_192 | 192 | — |
AES_256 | 256 | — |
ColladaSaveOptions
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
algorithm_name | str | ColladaSaveOptions "AES". |
key_bits | int | Longueur de la clé AES en bits (128, 192 ou 256). |
alg_id | int | Identifiant numérique de l’algorithme utilisé dans l’enregistrement de chiffrement OOXML. |
key_bytes | int | Longueur de la clé en octets (key_bits // 8). |
block_size | int | ColladaSaveOptions 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.
| ColladaSaveOptions | Octets de hachage | alg_id |
|---|---|---|
SHA1 | 20 | — |
SHA256 | 32 | — |
SHA384 | 48 | — |
SHA512 | 64 | — |
ColladaSaveOptions
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
algorithm_name | str | Nom de la fonction de hachage (p. ex., "SHA-512"). |
hash_bytes | int | Longueur du condensat en octets. |
alg_id | int | Identifiant 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
)| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|---|
cipher_algorithm | CipherAlgorithm | AES_256 | Longueur de la clé AES à utiliser. |
hash_algorithm | HashAlgorithm | SHA512 | Fonction de hachage pour la dérivation de clé PBKDF2. |
spin_count | int | 100000 | Nombre 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
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
encryption_type | str | ColladaSaveOptions "agile". |
cipher_algorithm | CipherAlgorithm | Chiffrement configuré. |
hash_algorithm | HashAlgorithm | Fonction de hachage configurée. |
spin_count | int | Nombre d’itérations PBKDF2. |
salt_size | int | Longueur du sel en octets (dérivée de la taille du bloc de chiffrement). |
block_size | int | Taille du bloc de chiffrement en octets (toujours 16 pour AES). |
key_bits | int | Longueur 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
) -> NoneLit le fichier XLSX à input_path, le chiffre avec password en utilisant le spécifié encryption_params, et écrit le fichier chiffré à output_path.
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
input_path | str | Chemin vers le fichier XLSX source. |
output_path | str | Chemin de destination pour le fichier chiffré. Peut être le même que input_path pour le chiffrement sur place. |
password | str | Mot de passe de chiffrement. |
encryption_params | `AgileEncryptionParameters | StandardEncryptionParameters |
decrypt_xlsx
decrypt_xlsx(
input_path: str,
output_path: str,
password: str
) -> boolDé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() -> AgileEncryptionParametersRetourne 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!")