Документація HotXLS

Властивість EncryptionPassword

Повертає або встановлює пароль для шифрування книги BIFF8 (.xls) під час SaveAs. Встановлення непорожнього значення створює файл з парольним захистом, сумісний з Excel: Microsoft Excel, LibreOffice Calc та інші читачі BIFF8 запитуватимуть пароль при відкритті та відмовлятимуть у доступі, якщо пароль хибний. Читання/запис WideString. (Значення за замовчуванням — порожній рядок, доступне з v2.32.0.)

Синтаксис

property EncryptionPassword: WideString;

Примітки

Шлях запису видає запис BIFF8 FILEPASS ($002F) безпосередньо після BOF книги та RC4-шифрує всі наступні тіла записів. Формат — vMajor=1, vMinor=1 (шифрування «Office 97/2000 Compatible»). 16-байтові Salt та Verifier генеруються через Windows CryptGenRandom, а не через Pascal Random. Повторне виведення блокового ключа кожні 1024 байти дозволяє коректно шифрувати великі книги, ланцюги SST CONTINUE та потоки з кількома аркушами

Шифрування застосовується лише до BIFF8 (xlExcel97) — шлях збереження BIFF5 залишається відкритим текстом. Порожній EncryptionPassword зберігає застарілий відкритий вивід і є значенням за замовчуванням, тому наявні програми, що ніколи не викликають setter, не постраждають

Примітка щодо безпеки: BIFF8 RC4 з vMajor=1/vMinor=1 використовує 40-бітний ключ, який вважається зламаним за стандартами 2025 року. Використовуйте цю функцію для сумісності з класичним інтерфейсом парольного захисту Excel, а не для конфіденційності чутливих даних. Для реальної безпеки надавайте перевагу виводу XLSX з AES

Приклад

Цей приклад зберігає файл .xls з парольним захистом

Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('Confidential.xls', xlExcel97);