用Python破解Excel密码实践,还原工作表密码

Excel 工作表编辑密码位数为12位 范围是AAAAAAAAAAA (注意A后面有个空格)至BBBBBBBBBBB~ 拥有194560个组合
支持xlsx,支持wps
原理:
在保护工作表或者工作簿时,如果你设置了密码(图2),那么无论该密码的长度是多少,Excel都会将其转换成包含12个字符的特殊序列,并将这个经过转换的密码保存在Excel中。因此,虽然很难猜测出原始密码,但我们可以分析这12个字符序列。
假如Excel将所设置的密码转换后与包含12个字符的序列匹配,那么就相当于获取了原来由密码所限制的权限,实际上就是破解了设置的密码。也就是说,你设置的密码是什么都没有关系,存储在Excel中的实际上就是这12个字符序列组合之一。由于这12个字符可以组合成大约200000个(95*2^11=194560)不同的序列,可以通过遍历这些序列来破解密码,实际上是解除Excel给用户设置的限制。

安装支持库 pip3 install pywin32 -i https://pypi.doubanio.com/simple/

源代码分享:

import win32com.client

a=[]
b=[]
c=[]
ProtectPass=[]
for i in range(2048):
a.append(list(‘{:011b}’.format(i))) #生成2^11次的组合列表,因为11位密码有2^11种排列组合方式,将排列组合列表作为成员添加到列表中,此时生成的是二进制0和1
#print(a)
for i in a: # 遍历列表中的所有组合
for j in i: # 对排列组合列表中的各个成员值进行遍历
b.append(int(j)+65) # 对各个成员进行加65操作 0加65等于本身 1加65=66
c.append(b) # 生成包含65和66的所有排列可能
b=[]
for k in c: # 对所有的排列可能进行遍历 得到每组排列组合的列表形式
#print(k)
m=list(k) # 转换成列表
m.append(0) #末尾再加一组成员0,因为要对其进行复制,末尾成员的值范围不是65或者66
for n in range(32,127):
m[len(m)-1]=n #末尾成员的赋值,范围是32-126
#print(m)
list2=[chr(i) for i in m] #将int类型转化成ascii码,也就是字符
str=”.join(list2) #将字符列表转成字符串
ProtectPass.append(str) # 最后将每一串字符串作为列表成员放入列表 方便破解密码

xlsx=win32com.client.Dispatch(‘Excel.Application’) # 获得Excel对象
wb=xlsx.Workbooks.Open(r’C:\Users\Administrator\Desktop\hello.xlsx’,False,False,None,Password=\”\”) #这里的Password是Excel文件打开密码 也可以使用穷举
xlsx.Visible = True #是否可见Excel界面
ws=wb.Sheets[1]  #获取第二张工作表,因为我设置了第二张工作表里面 第一张表则填0
# 如果是需要跑活动工作表的密码 可以使用 wb.ActiveSheet
for EditPass in ProtectPass:
try:
ws.Unprotect(EditPass)
print(f\”成功了 密码是{EditPass}\”) # 成功以后则直接跳出
break
except: # 出现异常就代表密码错误  此时需要无视异常继续试下一个密码
continue

给TA打赏
共{{data.count}}人
人已打赏
WP实用教程

WordPress主题/插件/工具/服务

2021-8-18 1:49:07

WP实用教程

wordpress建站基本功能SEO

2018-9-20 22:05:56


版权免责声明

本资源仅用于个人学习测试使用,禁止用于任何商业环境,请于下载后24小时内 删除本资源!

本文所有相关技术/资源内容统一放在下载包里

  1. 1、本网站名称:指点聚源码
  2. 2、本站永久网址:https://www.zhidianju.com
  3. 3、站内所有资源均可通过日常签到等任务进行免费兑换,记得每日来本站签到哦~!(由于模板不是很完善签到 需刷新一下!)。
  4. 4、如果您觉得本站有帮助到您,也想给本站一些帮助。您可以再下方打赏本站。
  5. 5、如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
  6. 6、本站资源来源于互联网收集/个人购买,如有侵犯到您的权益,请查看【版权声明】
  7. 7、本站提供的所有资源均来自互联网搜索,站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁 止用于任何商业环境,任何人不得擅作它用,否则后果自负!请在下载24小时内删除!为尊重作者版权,请购买原版作品,支 持你喜欢的作者,谢谢!
  8. 8、本站资源大多存储在云盘,如发现链接失效 【链接失效】 我们会第一时间更新。本站提供的源码、模板、软件工具等其他资源, 都不包含技术服务 请大家谅解!
  9. 9、如遇到加密压缩包,默认解压密码为"www.zhidianju.com",如遇到无法解压的请联系管理员!
  10. 10、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索