这个脚本仅作为自己学习python过程中的练习案例,通过从数字0开始不断递增数值+1,从而实现数字的枚举来不断进行xls文件密码的尝试。因此逻辑上比较简单,功能也非常简易。
仅适用于xls、xlsx文件中采用了纯数字密码的文件
引用了python第三方库:pywin32
代码如下:
import win32com.client
import os
# 获取密码函数
def get_sheetpw(xls, filename, password):
try:
xlsheet = xls.Workbooks.Open(filename, False, True, None, Password=password)
print('=>', "破解成功,密码为:{}".format(password))
xlsheet.Close()
return True
except:
return False
# 主程序入口
if __name__ == '__main__':
path = input("请输入您要处理的文件路径:")
if path != '':
if os.access(path, os.F_OK):
xls = win32com.client.Dispatch("Excel.Application")
xls.DisplayAlerts = 0
i = 0
print('->', path, "破解中,请耐心等待………")
while True:
is_done = get_sheetpw(xls, path, i)
i = i + 1
if is_done:
break
print("->", i)
else:
print('=> 无法读取文件,', path)
else:
print("无效的路径,程序已自动关闭")