读/写Excel 2007受密码保护的文档

时间:2009-10-01 08:58:31

标签: c# excel encryption ms-office password-protection

Office 2007使用什么方法进行加密(从Office菜单中选择加密和设置密码时)?

我的C#应用​​程序需要创建和读取加密的Excel 2007文件(.xlsx)。重要的是这些文件仍然可以从Excel访问,因此我必须使用Microsoft的加密方法,不能自己酿造。

普通Excel 2007文件是ZIP压缩文件,我使用ExcelPackage访问它,内部使用* System.Io.Packaging.Package *(.net 3.0的一部分)。

但是,Office中的加密标准ZIP加密。 Package类似乎不支持加密,并报告损坏的文件。 7Zip打开文件(没有提供密码)并在里面显示一些二进制文件。

3 个答案:

答案 0 :(得分:3)

Office 2007使用OLE文档(与二进制Office文档使用的容器格式相同)来存储加密文档。

[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification应包含所用数据结构和算法的规范。

答案 1 :(得分:2)

基于几个开源的部分,我创建了一个OoXmlCrypto stream包装器,可以轻松访问Office 2007加密文件。

这是基于blog postsource code进行OOXML加密/解密。

答案 2 :(得分:1)