Tài liệu HotXLS

Thuộc tính EncryptionPassword

Trả về hoặc đặt mật khẩu dùng để mã hóa sổ làm việc BIFF8 (.xls) khi SaveAs. Đặt giá trị không trống tạo ra tệp được bảo vệ bằng mật khẩu tương thích Excel: Microsoft Excel, LibreOffice Calc và các trình đọc BIFF8 khác yêu cầu mật khẩu khi mở và từ chối truy cập khi sai. Đọc/ghi WideString. (Giá trị mặc định là chuỗi trống, khả dụng từ v2.32.0)

Cú pháp

property EncryptionPassword: WideString;

Ghi chú

Đường dẫn ghi phát ra bản ghi BIFF8 FILEPASS ($002F) ngay sau BOF sổ làm việc và mã hóa RC4 mọi thân bản ghi tiếp theo. Định dạng dây là vMajor=1, vMinor=1 (mã hóa "Office 97/2000 Compatible"). 16-byte Salt và Verifier được tạo qua Windows CryptGenRandom thay vì Pascal Random. Việc tạo lại khóa khối tại mọi ranh giới 1024-byte được giữ nguyên để các sổ làm việc lớn, chuỗi SST CONTINUE và các luồng đa trang tính mã hóa đúng

Mã hóa chỉ áp dụng cho BIFF8 (xlExcel97) — đường dẫn lưu BIFF5 vẫn là plaintext. EncryptionPassword trống giữ đầu ra plaintext kế thừa và là mặc định, do đó các ứng dụng hiện có chưa bao giờ gọi setter không bị ảnh hưởng

Lưu ý bảo mật: BIFF8 RC4 với vMajor=1/vMinor=1 dùng khóa 40-bit, được coi là bị phá vỡ theo tiêu chuẩn năm 2025. Dùng tính năng này để tương thích với giao diện bảo vệ mật khẩu cổ điển của Excel, không phải để bảo mật dữ liệu nhạy cảm. Để bảo mật thực sự, hãy ưu tiên đầu ra XLSX với AES

Ví dụ

Ví dụ này lưu tệp .xls được bảo vệ bằng mật khẩu

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