如何在C#中打开加密的OOXML文档?

时间:2009-06-30 15:06:11

标签: c# encryption ole openxml

我想打开加密的OOXML文件,这些文件作为流存储在复合OLE文件中。微软有一个OOXML API(OOXML Format SDK 2.0,但它似乎缺乏操纵加密的OOXML文档的方法。所以,这有两个问题。

  • 如何在C#中打开复合OLE文档?我发现了这个非常相似的问题,(reading compound documents in C#),但我希望可能有一种更清洁,更通用的方法,我错过了。

  • 是否有一种高级方法来解密OLE文档中的EncryptedPackage流?我发现的两个最佳参考是Decrypting Office DocumentsMS-OFFCRYPTO Examples。 “解密Office文档”似乎成功解密,但它依赖于外部DLL( Lyquidity.OleStorage.dll )来打开OLE文档并且不适合我。 “MS-OFFCRYPTO示例”在C#中有一个示例来解密流,但使用C ++示例来获取流。这两个引用看起来都有效,但是有更高级别的API可以做同样的事情吗?

1 个答案:

答案 0 :(得分:1)

简短回答:没有更高级别的API。 答案很长:MS-OFFCRYPTO Examples是如何解密它的最佳示例,但您必须使用库(或自己创建)与OLE文档进行交互。 OLE Structured Storage有很多图书馆,例如OpenMCDF和来自GemBox Software的图书馆