吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15880|回复: 124
收起左侧

[Python 转载] python 破解Excel密码(还原工作表密码)

     关闭 [复制链接]
bester 发表于 2022-1-20 03:20
本帖最后由 bester 于 2022-3-28 15:56 编辑

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/

QQ截图20220120030909.jpg
[Python] 纯文本查看 复制代码
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

免费评分

参与人数 16吾爱币 +14 热心值 +14 收起 理由
dahaidao + 1 + 1 我很赞同!
chudiankufeng + 1 热心回复!
vanpersiesai + 1 我很赞同!
arrymarry + 1 + 1 热心回复!
bzhjl + 1 + 1 热心回复!
shadowfire + 1 谢谢@Thanks!
hhcjl + 1 + 1 谢谢@Thanks!
zhengsg5 + 1 + 1 谢谢@Thanks!
yjn866y + 1 + 1 热心回复!
ldark + 1 + 1 鼓励转贴优秀软件安全工具和文档!
拎壺沖 + 1 + 1 期待楼主出一个破解工作薄密码的
sapin + 1 + 1 暴力破解的美学~~用心讨论,共获提升!
kaixianxian + 1 + 1 热心回复!
shizi1521 + 1 + 1 谢谢@Thanks!
xaibin + 1 + 1 谢谢@Thanks!
ilpj + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hubojm 发表于 2022-1-20 06:58
不会用 python,楼主能不能生成个小软件啊?
simmtech 发表于 2022-1-20 07:43
hbwwt 发表于 2022-1-20 04:42
shojnhv 发表于 2022-1-20 06:57
真是牛人,学习了
lgh978 发表于 2022-1-20 06:58
厉害了!
xingyan720 发表于 2022-1-20 07:57
这个可以有
saosao521 发表于 2022-1-20 07:59
可以了可以了,最好可以编译成运行文件
lizy169 发表于 2022-1-20 08:05
纯数字纯字母容易破解,如果是字母数字符号组合能?

免费评分

参与人数 1吾爱币 +1 收起 理由
^枫^ + 1 我很赞同!

查看全部评分

jhonsun 发表于 2022-1-20 08:07
学习啦!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 06:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表