gpt4 book ai didi

c++ - 在 C/C++ 中检测密码保护的 MS Office 文件

转载 作者:太空宇宙 更新时间:2023-11-04 08:50:37 24 4
gpt4 key购买 nike

如何检测受密码保护的 Ms Office 文件?我在 Linux 上使用 C/C++。

最佳答案

如果文件是 Office 2007 格式(例如 .docx),那么它们的内部存储是:

1) 一个 xml 文档的 zip 文件(如果它没有密码保护)

2) 旧式复合文件格式(如果它受密码保护)。

因此你可能会做这样的事情:

1) 检查文件的前几个字节

2) 如果它是一个 zip 文件(无密码保护),它将以 0x50 0x4b 0x03 0x04 开头。

3) 如果它不是 zip 文件,则它可能受密码保护。它将以不同的二进制签名开头(例如,在这种情况下,Word 2007 文档以 0xd0 0xcf 0x11 0xe0 开头)

基本上,如果它是一个新的 .docx 或 .xlsx,并且它不以 0x50 0x4b 0x03 0x04 的 zip 签名开头,它可能受密码保护。

对于其他版本的 MS Office,这有点棘手......

关于c++ - 在 C/C++ 中检测密码保护的 MS Office 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19792056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com