恍然小悟,去掉Excel的worksheet(工作表)保护的新方法

拜拜、爱过 提交于 2020-04-17 03:37:46

【推荐阅读】微服务还能火多久?>>>

广为认知的方法是,运行一段猜测密码的VBA(https://uknowit.uwgb.edu/page.php?id=28850),几十秒就可以找到代替密码,因为密码Hash很短所以密码有多个。但是Excel2013里密码Hash很长所以密码几乎是唯一的,依靠这个VBA肯定找不到密码。

注意,现在说的不是那种一打开就要输入密码的excel文件,那个是文件整体加密的,必须暴力破解出密码的。现在说的是文件能打开,只是里面的有的部分不能修改。

我虽然手头没有Excel 2013,但是推测,这个worksheet保护,其实没有对文件内容加密,仅仅是做了些标记,说不让修改某些制定的cell而已,应该是去掉了标记就可以自由修改了的。在Office 2010上实验了,的确没问题,只要把文件按照下面的方法修改一下就好了:

  1. 把xlsx文件后缀改成zip,解压。  (如果是xls,那就先保存成xlsx格式)

    解压后的目录结构大致是:

    顶层目录
        _res目录
        docProps目录
        xl目录
       [Content_Types].xml
       ....
  2. 在解压后的xl/worksheets目录里,找到sheet1.xml, sheet2.xml...,打开

  3. 把里面的<sheetProtect.....>这句给删除

    <sheetProtection objects="1" password="????" scenarios="1" sheet="1"/>
  4. 把顶层目录的东西压缩,但是不包括顶层目录。把压缩有的文件后缀名改成xlsx,这就是可以自由修改的xls文件了。


估计这个方法应该在Excel2013里可以使用的。

这个方法就和去除pdf的复制打印保护的方法差不多,不需要密码,只需要用qpdf工具修改一下就好了。

qpdf --decrypt old_pdf_file new_pdf_file




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