码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-09-11 14:32:12      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

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

我虽然手头没有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




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

标签:

原文地址:http://my.oschina.net/u/2253129/blog/504904

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!