Encryption — Aspose.Cells FOSS for Python API Reference

aspose-cells-foss podporuje šifrovanie a dešifrovanie XLSX súborov pomocou funkcií na úrovni modulu encrypt_xlsx a decrypt_xlsx. Two parameter classes configure the cipher algorithm, hash algorithm, and PBKDF2 spin count. The recommended default is AgileEncryptionParameters s AES-256 a SHA-512.

ImageRenderOptions: aspose.cells_foss

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

CipherAlgorithm

CipherAlgorithm je IntEnum špecifikujúca dĺžku kľúča AES. Všetky varianty používajú AES v CBC režime s blokovou veľkosťou 16 bajtov.

ImageRenderOptionsBity kľúčaalg_id
AES_128128
AES_192192
AES_256256

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
algorithm_namestrImageRenderOptions "AES".
key_bitsintDĺžka kľúča AES v bitoch (128, 192 alebo 256).
alg_idintČíselný identifikátor algoritmu používaný v zázname šifrovania OOXML.
key_bytesintDĺžka kľúča v bajtoch (key_bits // 8).
block_sizeintImageRenderOptions 16 (veľkosť bloku AES v bajtoch).

HashAlgorithm

HashAlgorithm je IntEnum špecifikujúca hash funkciu používanú pre odvodenie kľúča PBKDF2.

ImageRenderOptionsHash bajtyalg_id
SHA120
SHA25632
SHA38448
SHA51264

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
algorithm_namestrNázov hash funkcie (napr., "SHA-512").
hash_bytesintDĺžka digestu v bajtoch.
alg_idintČíselný identifikátor algoritmu používaný v zázname šifrovania OOXML.

AgileEncryptionParameters

AgileEncryptionParameters konfiguruje schému Agile Encryption (ECMA-376, časť 4), ktorá je predvoleným a odporúčaným formátom pre moderné súbory Excel (Excel 2010+).

ImageRenderOptions

AgileEncryptionParameters(
    cipher_algorithm=CipherAlgorithm.AES_256,
    hash_algorithm=HashAlgorithm.SHA512,
    spin_count=100000
)
ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
cipher_algorithmCipherAlgorithmAES_256Dĺžka kľúča AES, ktorý sa má použiť.
hash_algorithmHashAlgorithmSHA512Hashovacia funkcia pre odvodenie kľúča PBKDF2.
spin_countint100000Počet iterácií PBKDF2. Vyššie hodnoty zvyšujú odolnosť voči brutálnemu útoku na úkor času otvárania/ukladania.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptions
encryption_typestrImageRenderOptions "agile".
cipher_algorithmCipherAlgorithmNakonfigurovaný šifrovací algoritmus.
hash_algorithmHashAlgorithmNakonfigurovaná hashovacia funkcia.
spin_countintPočet iterácií PBKDF2.
salt_sizeintDĺžka soli v bajtoch (odvodená od veľkosti bloku šifry).
block_sizeintVeľkosť bloku šifry v bajtoch (vždy 16 pre AES).
key_bitsintDĺžka kľúča v bitoch.

StandardEncryptionParameters

StandardEncryptionParameters konfiguruje schému Standard Encryption pre kompatibilitu s Excel 2007. Uprednostnite AgileEncryptionParameters pre nové súbory.

ImageRenderOptions

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

Vlastnosti odrážajú tie z AgileEncryptionParameters. Vlastnosť encryption_type je "standard".


Funkcie modulu

encrypt_xlsx

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

Načíta XLSX súbor na input_path, zašifruje ho pomocou password s použitím špecifikovaného encryption_params, a zapíše šifrovaný súbor do output_path.

ImageRenderOptionsImageRenderOptionsImageRenderOptions
input_pathstrCesta k zdrojovému súboru XLSX.
output_pathstrCieľová cesta pre šifrovaný súbor. Môže byť rovnaká ako input_path pre šifrovanie na mieste.
passwordstrŠifrovacie heslo.
encryption_params`AgileEncryptionParametersStandardEncryptionParameters

decrypt_xlsx

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

Dešifruje súbor XLSX na input_path pomocou password a zapíše nešifrovaný XLSX do output_path. Vráti True ak dešifrovanie bolo úspešné, False ak bolo heslo nesprávne alebo súbor nebol šifrovaný.

get_default_encryption_params

get_default_encryption_params() -> AgileEncryptionParameters

Vráti AgileEncryptionParameters inštanciu nakonfigurovanú s AES_256, SHA512, a spin_count=100000. Použite to na prehliadnutie alebo klonovanie predvolených nastavení knižnice pred prispôsobením.


ImageRenderOptions

Zašifrovať zošit

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)

Dešifrovať zošit

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

Otvoriť šifrovaný súbor priamo

ImageRenderOptions Workbook konštruktor tiež akceptuje password parameter na otvorenie šifrovaných súborov bez samostatného kroku dešifrovania:

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

Pozri tiež

 Slovenčina