Encryption — Aspose.Cells FOSS for Python API Reference

Το aspose-cells-foss υποστηρίζει κρυπτογράφηση και αποκρυπτογράφηση AES αρχείων XLSX μέσω των συναρτήσεων επιπέδου μονάδας encrypt_xlsx και decrypt_xlsx. Δύο κλάσεις παραμέτρων διαμορφώνουν τον αλγόριθμο κρυπτογράφησης, τον αλγόριθμο κατακερματισμού και τον αριθμό περιστροφών PBKDF2. Η προτεινόμενη προεπιλογή είναι AgileEncryptionParameters με AES-256 και 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 είναι ένα IntEnum καθορίζοντας το μήκος του κλειδιού AES. Όλες οι παραλλαγές χρησιμοποιούν AES σε λειτουργία CBC με μέγεθος μπλοκ 16-byte.

ColladaSaveOptionsΚύρια bitsalg_id
AES_128128
AES_192192
AES_256256

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
algorithm_namestrColladaSaveOptions "AES".
key_bitsintΜήκος κλειδιού AES σε bits (128, 192 ή 256).
alg_idintΑριθμητικό αναγνωριστικό αλγορίθμου που χρησιμοποιείται στην εγγραφή κρυπτογράφησης OOXML.
key_bytesintΜήκος κλειδιού σε bytes (key_bits // 8).
block_sizeintColladaSaveOptions 16 (μέγεθος μπλοκ AES σε bytes).

HashAlgorithm

HashAlgorithm είναι ένα IntEnum καθορίζοντας τη συνάρτηση κατακερματισμού που χρησιμοποιείται για την παραγωγή κλειδιού PBKDF2.

ColladaSaveOptionsByte κατακερματισμούalg_id
SHA120
SHA25632
SHA38448
SHA51264

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
algorithm_namestrΌνομα συνάρτησης κατακερματισμού (π.χ., "SHA-512").
hash_bytesintΜήκος κατακερματισμού σε bytes.
alg_idintΑριθμητικό αναγνωριστικό αλγορίθμου που χρησιμοποιείται στην εγγραφή κρυπτογράφησης OOXML.

AgileEncryptionParameters

AgileEncryptionParameters ρυθμίζει το σχήμα Agile Encryption (ECMA-376, μέρος 4), το οποίο είναι η προεπιλεγμένη και συνιστώμενη μορφή για σύγχρονα αρχεία Excel (Excel 2010+).

ColladaSaveOptions

AgileEncryptionParameters(
    cipher_algorithm=CipherAlgorithm.AES_256,
    hash_algorithm=HashAlgorithm.SHA512,
    spin_count=100000
)
ColladaSaveOptionsColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
cipher_algorithmCipherAlgorithmAES_256Μήκος κλειδιού AES προς χρήση.
hash_algorithmHashAlgorithmSHA512Συνάρτηση κατακερματισμού για την παράγωγη κλειδιού PBKDF2.
spin_countint100000Αριθμός επαναλήψεων PBKDF2. Οι υψηλότερες τιμές αυξάνουν την αντίσταση σε επιθέσεις brute-force με κόστος τον χρόνο ανοίγματος/αποθήκευσης.

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
encryption_typestrColladaSaveOptions "agile".
cipher_algorithmCipherAlgorithmΔιαμορφωμένο κρυπτογράφημα.
hash_algorithmHashAlgorithmΔιαμορφωμένη συνάρτηση κατακερματισμού.
spin_countintΑριθμός επαναλήψεων PBKDF2.
salt_sizeintΜήκος αλατιού σε bytes (προέρχεται από το μέγεθος μπλοκ κρυπτογράφηματος).
block_sizeintΜέγεθος μπλοκ κρυπτογράφηματος σε bytes (πάντα 16 για AES).
key_bitsintΜήκος κλειδιού σε bits.

StandardEncryptionParameters

StandardEncryptionParameters ρυθμίζει το σχήμα Standard Encryption για συμβατότητα με το Excel 2007. Προτιμήστε AgileEncryptionParameters για νέα αρχεία.

ColladaSaveOptions

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

Οι ιδιότητες αντικατοπτρίζουν αυτές του AgileEncryptionParameters. Η encryption_type ιδιότητα είναι "standard".


Συναρτήσεις Μονάδας

encrypt_xlsx

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

Διαβάζει το αρχείο XLSX στο input_path, το κρυπτογραφεί με password χρησιμοποιώντας το καθορισμένο encryption_params, και γράφει το κρυπτογραφημένο αρχείο στο output_path.

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
input_pathstrΔιαδρομή προς το αρχείο πηγής XLSX.
output_pathstrΔιαδρομή προορισμού για το κρυπτογραφημένο αρχείο. Μπορεί να είναι η ίδια με input_path για κρυπτογράφηση εντός του αρχείου.
passwordstrΚωδικός κρυπτογράφησης.
encryption_params`AgileEncryptionParametersStandardEncryptionParameters

decrypt_xlsx

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

Αποκρυπτογραφεί το αρχείο XLSX στο input_path χρησιμοποιώντας password και γράφει το απλό κείμενο XLSX στο output_path. Επιστρέφει True αν η αποκρυπτογράφηση πέτυχε, False αν ο κωδικός ήταν λανθασμένος ή το αρχείο δεν ήταν κρυπτογραφημένο.

get_default_encryption_params

get_default_encryption_params() -> AgileEncryptionParameters

Επιστρέφει ένα AgileEncryptionParameters αντικείμενο διαμορφωμένο με AES_256, SHA512, spin_count=100000.και.


ColladaSaveOptions

Κρυπτογράφηση βιβλίου εργασίας

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)

Αποκρυπτογράφηση βιβλίου εργασίας

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

Άνοιγμα κρυπτογραφημένου αρχείου απευθείας

ColladaSaveOptions Workbook ο κατασκευαστής δέχεται επίσης ένα password παράμετρο για το άνοιγμα κρυπτογραφημένων αρχείων χωρίς ξεχωριστό βήμα αποκρυπτογράφησης:

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

Δείτε επίσης

 Ελληνικά