Read/write Excel 2007 password-protected documents

感情迁移 提交于 2019-12-02 05:40:41

问题


What method does Office 2007 use for encryption (when choosing Encrypt and setting a password from Office menu)?

My C# app needs to create and read encrypted Excel 2007 files (.xlsx). It is important that these files remain accessible from Excel, so I must use Microsoft's encryption method, can't brew my own.

Normal Excel 2007 file is a ZIP-compressed file, and I'm accessing it using ExcelPackage, which internally uses * System.Io.Packaging.Package* (part of .net 3.0).

However, the encryption in Office is not the standard ZIP encryption. The Package class seems not to support encryption, and reports a corrupted file. 7Zip opens the file (with no password provided) and shows a few binary files inside.


回答1:


Office 2007 uses an OLE document (the same container format that is used for the binary Office documents) to store encrypted documents.

[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification should contain the specification of the used data structures and algorithms.




回答2:


Based on several open source bits and pieces, I created a OoXmlCrypto stream wrapper to access Office 2007 encrypted files easily.

This is based on a blog post with source code which does OOXML encryption/decryption.




回答3:


JFYI: our SecureBlackbox product offers components for encryption and decryption of OOXML documents among many other functions.



来源:https://stackoverflow.com/questions/1502781/read-write-excel-2007-password-protected-documents

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!