Office Open XML(OOXML)规范:加密

时间:2009-05-13 14:20:41

标签: encryption passwords ms-office openxml

我试图了解如何捆绑加密(“密码保护”)Office 2007文档(特别是Excel文档)。我正在尝试使用已知的密码保护电子表格。

当我解压缩XLSX文件时,遇到三个条目:

  • [6] DataSpaces(目录)
  • EncryptionInfo(文件)
  • EncryptedPackage(文件)

EncryptedPackage文件如何加密(哪个密码,哪个密钥派生函数等等?)?

我尝试引用the documentation,但我没有取得多大成功。

2 个答案:

答案 0 :(得分:8)

文件加密不是OpenXML ECMA / ISO规范的一部分。它是特定于供应商的标准。有关规格,请查看

  

[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification

加密的OpenXML文档不是作为OPC zip包存储,而是作为复合OLE文档中的加密OPC包存储。

答案 1 :(得分:4)

我创建了一个OoXmlCrypto stream包装器,连接了几个开源位和片段,可以轻松访问Office 2007加密文件。

answer可能会有所帮助。

结果显示[6]忽略了DataSpaces,但使用了其他两个部分。加密的XLSX文件没有真正压缩,它是一个OLE复合容器。如果您取出部件,并使用7zip压缩它们,Excel不会打开它。