مستندات 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") است. ۱۶ بایت Salt و Verifier از طریق Windows CryptGenRandom به‌جای Pascal Random تولید می‌شوند. مشتق‌سازی مجدد کلید بلوک در هر مرز ۱۰۲۴ بایتی حفظ می‌شود تا کارپوشه‌های بزرگ، زنجیرهای SST CONTINUE و جریان‌های چند شیت به درستی رمزگذاری شوند

رمزگذاری فقط برای BIFF8 (xlExcel97) اعمال می‌شود — مسیر ذخیره BIFF5 متن ساده باقی می‌ماند. یک EncryptionPassword خالی خروجی متن ساده قدیمی را حفظ می‌کند و پیش‌فرض است، بنابراین برنامه‌های موجود که هرگز setter را فراخوانی نمی‌کنند دقیقاً مانند قبل رفتار می‌کنند

نکته امنیتی: BIFF8 RC4 با vMajor=1/vMinor=1 از کلید ۴۰ بیتی استفاده می‌کند که تا سال ۲۰۲۵ شکسته در نظر گرفته می‌شود. از این ویژگی برای سازگاری با رابط کاربری حفاظت رمز عبور کلاسیک Excel استفاده کنید، نه برای محرمانگی داده‌های حساس. برای امنیت واقعی، خروجی XLSX با AES را ترجیح دهید

مثال

این مثال یک فایل .xls رمزگذاری‌شده با رمز عبور ذخیره می‌کند

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