Devuelve o establece la contraseña usada para cifrar un libro de trabajo BIFF8 (.xls) al ejecutar SaveAs. Al establecer un valor no vacío se genera un archivo protegido con contraseña compatible con Excel: Microsoft Excel, LibreOffice Calc y otros lectores BIFF8 solicitan la contraseña al abrir y deniegan el acceso si es incorrecta. Lectura/escritura WideString. (El valor predeterminado es cadena vacía, disponible desde v2.32.0.)
Sintaxis
property EncryptionPassword: WideString;
Observaciones
La ruta de escritura emite un registro BIFF8 FILEPASS ($002F) inmediatamente después del BOF del libro de trabajo y cifra con RC4 el cuerpo de todos los registros posteriores. El formato de transmisión es vMajor=1, vMinor=1 (cifrado compatible con "Office 97/2000"). El Salt y el Verificador de 16 bytes se generan mediante CryptGenRandom de Windows en lugar de Random de Pascal. La re-derivación de clave de bloque cada 1024 bytes se conserva para que los libros de trabajo grandes, las cadenas CONTINUE del SST y los flujos de varias hojas se cifren correctamente
El cifrado solo se aplica a BIFF8 (xlExcel97) — la ruta de guardado BIFF5 permanece en texto plano. Una EncryptionPassword vacía mantiene la salida en texto plano heredada y es el valor predeterminado, por lo que las aplicaciones existentes que nunca llamen al setter no se ven afectadas
Nota de seguridad: BIFF8 RC4 con vMajor=1/vMinor=1 usa una clave de 40 bits, que se considera obsoleta según los estándares de 2025. Use esta función para compatibilidad con la UI de protección con contraseña clásica de Excel, no para confidencialidad de datos sensibles. Para seguridad real, prefiera la salida XLSX con AES
Nota de seguridad
Este ejemplo guarda un archivo .xls protegido con contraseña
Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('Confidential.xls', xlExcel97);