Devolve ou define a palavra-passe utilizada para encriptar um livro BIFF8 (.xls) em SaveAs. A definição de um valor não vazio produz um ficheiro protegido por palavra-passe compatível com Excel: o Microsoft Excel, o LibreOffice Calc e outros leitores BIFF8 solicitam a palavra-passe na abertura e recusam o acesso quando esta está errada. Leitura/escrita WideString. (O valor predefinido é a cadeia vazia, disponível desde v2.32.0.)
Sintaxe
property EncryptionPassword: WideString;
Observações
O caminho de escrita emite um registo BIFF8 FILEPASS ($002F) imediatamente após o BOF do livro e encripta com RC4 cada corpo de registo subsequente. O formato é vMajor=1, vMinor=1 (encriptação "Office 97/2000 Compatible"). Salt e Verificador de 16 bytes são gerados através do Windows CryptGenRandom em vez de Random do Pascal. A re-derivação da chave de bloco a cada limite de 1024 bytes é preservada para que livros grandes, cadeias CONTINUE do SST e fluxos multi-folha sejam encriptados correctamente
A encriptação aplica-se apenas ao BIFF8 (xlExcel97) — o caminho de gravação BIFF5 permanece em texto simples. Uma EncryptionPassword vazia mantém a saída legada em texto simples e é o valor predefinido, pelo que as aplicações existentes que nunca chamam o setter não são afectadas
Nota de segurança: o RC4 BIFF8 com vMajor=1/vMinor=1 utiliza uma chave de 40 bits, que é considerada comprometida pelos padrões de 2025. Utilize esta funcionalidade para compatibilidade com a interface clássica de protecção por palavra-passe do Excel, não para confidencialidade de dados sensíveis. Para segurança real, prefira saída XLSX com AES
Exemplo
Este exemplo guarda um ficheiro .xls protegido por palavra-passe
Workbook.EncryptionPassword := 'secret';
Workbook.SaveAs('Confidential.xls', xlExcel97);