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

广为认知的方法是,运行一段猜测密码的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




转载于:https://my.oschina.net/osexp2003/blog/504904

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值