![为什么 MS Office 文件实际上是带有其他扩展名的 ZIP 文件?](https://linux22.com/image/1593462/%E4%B8%BA%E4%BB%80%E4%B9%88%20MS%20Office%20%E6%96%87%E4%BB%B6%E5%AE%9E%E9%99%85%E4%B8%8A%E6%98%AF%E5%B8%A6%E6%9C%89%E5%85%B6%E4%BB%96%E6%89%A9%E5%B1%95%E5%90%8D%E7%9A%84%20ZIP%20%E6%96%87%E4%BB%B6%EF%BC%9F.png)
答案1
就问题的‘事实’部分而言……
为什么微软决定使用 ZIP 容器和 XML,而不是具有自定义签名和标头的专有文件格式?
他们过去就是这样做的,后来基于CDF格式(.doc、.xls 等)一直到 Office 2003,后来又尝试使用原始单文件 XML 作为文档格式,直到他们最终切换到ZIP+XML 适用于 Office 2007 中的新格式 (.docx、.xlsx 等)。
至于“为什么”,只有微软自己知道为什么做出这样的选择,但 ZIP 容器在当时已经非常普遍(例如,对于竞争的 OpenDocument 规范、Java .jar 档案等等),所以你可以自己猜测。
你可以在维基百科上找到更多详细信息:Office Open XML 标准化
这难道不会让逆向工程变得更容易吗?
该格式的字面名称是“Office Open XML”,并拥有作为 ECMA 标准发布的全套规范(ECMA-376)欧盟要求支持某种形式的开放文档格式。
因此,防止逆向工程并不是其目标;恰恰相反。这也是旧二进制 CDF 格式被废弃的原因。