Zwraca lub ustawia hasło używane do szyfrowania skoroszytu BIFF8 (.xls) podczas SaveAs. Ustawienie niepustej wartości tworzy plik chroniony hasłem zgodny z programem Excel: Microsoft Excel, LibreOffice Calc i inne czytniki BIFF8 proszą o hasło przy otwarciu i odmawiają dostępu, gdy jest ono błędne. Odczyt/zapis WideString. (Wartość domyślna to pusty ciąg, dostępna od v2.32.0)
Składnia
property EncryptionPassword: WideString;
Opis
Ścieżka zapisu emituje rekord BIFF8 FILEPASS ($002F) bezpośrednio po BOF skoroszytu i szyfruje RC4 każde kolejne ciało rekordu. Format transmisji to vMajor=1, vMinor=1 (szyfrowanie 'Office 97/2000 Compatible'). 16-bajtowe Salt i Verifier są generowane przez Windows CryptGenRandom, a nie Pascal Random. Rederywacja klucza bloku co 1024 bajty jest zachowana, tak aby duże skoroszyty, łańcuchy SST CONTINUE i strumienie wielu arkuszy były poprawnie zaszyfrowane
Szyfrowanie dotyczy tylko BIFF8 (xlExcel97) — ścieżka zapisu BIFF5 pozostaje niezaszyfrowana. Puste EncryptionPassword zachowuje starsze wyjście niezaszyfrowane i jest wartością domyślną, więc istniejące aplikacje, które nigdy nie wywołują settera, nie są dotknięte
Uwaga dotycząca bezpieczeństwa: BIFF8 RC4 z vMajor=1/vMinor=1 używa klucza 40-bitowego, który jest uważany za złamany zgodnie ze standardami z 2025 roku. Użyj tej funkcji w celu zapewnienia zgodności z klasycznym interfejsem ochrony hasłem programu Excel, a nie dla poufności poufnych danych. Dla prawdziwego bezpieczeństwa preferuj wyjście XLSX z AES
Uwagi bezpieczeństwa
Ten przykład zapisuje plik .xls chroniony hasłem
Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('Confidential.xls', xlExcel97);