Encryption — Aspose.Cells FOSS for Python API Reference

aspose-cells-foss admet xifrat i desxifrat AES de fitxers XLSX a través de les funcions a nivell de mòdul encrypt_xlsx i decrypt_xlsx. AgileEncryptionParameters Dues classes de paràmetres configuren l’algoritme de xifratge, l’algoritme de hash i el recompte d’iteracions PBKDF2. El valor predeterminat recomanat és.

Example: aspose.cells_foss

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

CipherAlgorithm

CipherAlgorithm amb AES-256 i SHA-512. IntEnum és un.

Exampleque especifica la longitud de la clau AES.alg_id
AES_128128
AES_192192
AES_256256

Example

ExampleExampleExample
algorithm_namestrExample "AES".
key_bitsintTotes les variants utilitzen AES en mode CBC amb una mida de bloc de 16 bytes.
alg_idintBits de clau.
key_bytesintLongitud de la clau en bytes (key_bits // 8).
block_sizeintExample 16 (mida del bloc AES en bytes).

HashAlgorithm

HashAlgorithm és un IntEnum especifica la funció hash utilitzada per a la derivació de claus PBKDF2.

ExampleBytes de hashalg_id
SHA120
SHA25632
SHA38448
SHA51264

Example

ExampleExampleExample
algorithm_namestrNom de la funció hash (p. ex., "SHA-512").
hash_bytesintLongitud del resum en bytes.
alg_idintIdentificador numèric de l’algoritme utilitzat al registre d’encriptació OOXML.

AgileEncryptionParameters

AgileEncryptionParameters configura l’esquema d’encriptació Agile (ECMA-376, part 4), que és el format per defecte i recomanat per a fitxers Excel moderns (Excel 2010+).

Example

AgileEncryptionParameters(
    cipher_algorithm=CipherAlgorithm.AES_256,
    hash_algorithm=HashAlgorithm.SHA512,
    spin_count=100000
)
ExampleExampleExampleExample
cipher_algorithmCipherAlgorithmAES_256Longitud de la clau AES a utilitzar.
hash_algorithmHashAlgorithmSHA512Funció hash per a la derivació de claus PBKDF2.
spin_countint100000Nombre d’iteracions PBKDF2. Valors més alts augmenten la resistència contra atacs de força bruta a costa del temps d’obertura/desar.

Example

ExampleExampleExample
encryption_typestrExample "agile".
cipher_algorithmCipherAlgorithmXifrat configurat.
hash_algorithmHashAlgorithmFunció hash configurada.
spin_countintRecompte d’iteracions PBKDF2.
salt_sizeintLongitud del salt en bytes (obtinguda de la mida del bloc del xifratge).
block_sizeintMida del bloc del xifratge en bytes (sempre 16 per a AES).
key_bitsintLongitud de la clau en bits.

StandardEncryptionParameters

StandardEncryptionParameters configura l’esquema d’Encriptació Estàndard per a compatibilitat amb Excel 2007. Prefereix AgileEncryptionParameters per a fitxers nous.

Example

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

Les propietats reflecteixen les de AgileEncryptionParameters. La encryption_type propietat és "standard".


Primers passos

encrypt_xlsx

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

Llegeix el fitxer XLSX a input_path, xifra’l amb password utilitzant el especificat encryption_params,i escriu el fitxer xifrat a output_path.

ExampleExampleExample
input_pathstrRuta al fitxer XLSX d’origen.
output_pathstrRuta de destinació per al fitxer xifrat. Pot ser la mateixa que input_path per a xifratge in situ.
passwordstrContrasenya de xifratge.
encryption_params`AgileEncryptionParametersStandardEncryptionParameters

decrypt_xlsx

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

Desxifra el fitxer XLSX a input_path utilitzant password i escriu el XLSX en text pla a output_path. Retorna True si el desxifratge ha tingut èxit, False si la contrasenya era incorrecta o el fitxer no estava encriptat.

get_default_encryption_params

get_default_encryption_params() -> AgileEncryptionParameters

Retorna una AgileEncryptionParameters instància configurada amb AES_256, SHA512, i spin_count=100000. Utilitzeu això per inspeccionar o clonar els valors per defecte de la biblioteca abans de personalitzar.


Example

Encripta un llibre de treball

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)

Desxifra un llibre de treball

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

Obre un fitxer encriptat directament

Example Workbook el constructor també accepta un password paràmetre per obrir fitxers encriptats sense un pas de desxifratge separat:

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

Vegeu també

 Català