Documentação do HotXLS

Propriedade EncryptionPassword

Retorna ou define a senha usada para criptografar uma pasta de trabalho BIFF8 (.xls) no SaveAs. Definir um valor não vazio produz um arquivo protegido por senha compatível com o Excel: Microsoft Excel, LibreOffice Calc e outros leitores BIFF8 solicitam a senha ao abrir e recusam o acesso quando ela está errada. Leitura/gravação WideString. (O valor padrão é string vazia, disponível desde a v2.32.0.)

Sintaxe

property EncryptionPassword: WideString;

Observações

O caminho de gravação emite um registro BIFF8 FILEPASS ($002F) imediatamente após o BOF da pasta de trabalho e criptografa com RC4 todos os corpos de registro subsequentes. O formato de transferência é vMajor=1, vMinor=1 (criptografia "Office 97/2000 Compatible"). Salt e Verifier de 16 bytes são gerados via Windows CryptGenRandom em vez de Pascal Random. A rederivação de chave de bloco a cada 1024 bytes é preservada para que pastas de trabalho grandes, cadeias CONTINUE SST e fluxos de múltiplas planilhas sejam criptografados corretamente

A criptografia se aplica apenas ao BIFF8 (xlExcel97) — o caminho de salvamento BIFF5 permanece em texto simples. Um EncryptionPassword vazio mantém a saída em texto simples legada e é o padrão, portanto as aplicações existentes que nunca chamam o setter não são afetadas

Nota de segurança: O BIFF8 RC4 com vMajor=1/vMinor=1 usa uma chave de 40 bits, que é considerada comprometida pelos padrões de 2025. Use este recurso para compatibilidade com a interface de proteção por senha clássica do Excel, não para confidencialidade de dados sensíveis. Para segurança real, prefira a saída XLSX com AES

Exemplo

Este exemplo salva um arquivo .xls protegido por senha

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