Office Open XML(OOXML)规范:加密

8

我正在尝试理解加密(“密码保护”)Office 2007文档的打包方式(特别是Excel文档)。 我正在使用已知的受密码保护的电子表格进行实验。

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

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

EncryptedPackage文件是如何加密的(使用哪种密码算法、哪种密钥派生函数等)?

我尝试参考文档,但没有取得太大成功。

2个回答

12

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

[MS-OFFCRYPTO]:Office文档加密结构规范

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


4
我创建了一个OoXmlCrypto流的包装器,连接了几个开源组件,以便轻松访问Office 2007加密文件。这里提供了更详细的信息。

这个答案可能会有所帮助。

结果发现,[6]DataSpaces被忽略了,但其他两个部分是被使用的。加密的XLSX文件实际上并没有被压缩,而是一个OLE容器。如果你将这些部分取出来,并使用7zip进行压缩,Excel就无法打开它了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接