N044_excel文件自动解密并去除密码 暴力破解密码

#!/usr/bin/env python3
import configparser
import os
import win32com.client
import turtle
import time
import math
import shutil
import threading
import sched
xcl = win32com.client.Dispatch("Excel.Application")
filename = ".//chenggong.xlsx"
try:
    wb = xcl.Workbooks.Open(r"D:\myjupyter\自制python 脚本工具库\044 excel文件自动解密并去除密码\1.xlsx", False, False, None, "111")
    xcl.DisplayAlerts = False
    # # 保存时可设置访问密码. 有时候不会成功
    wb.SaveAs(filename, None, '', '')
    # 保存文件
    wb.Save()
    # 文件保存并关闭
    wb.Close(SaveChanges=True)
    xcl.Quit()
except:
    xcl.Quit()
import win32com.client
def get_sheetpw(xls,filename,password):
    try:
        xlsheet = xls.Workbooks.Open(filename, False, True, None, Password=password)
        print('破解成功!')
        print("文档密码是:{}".format(password))
        xlsheet.Close()
        return True
    except:
        return False
if __name__=='__main__':
    xls = win32com.client.Dispatch("Excel.Application")
    xls.DisplayAlerts=0
    p=0
    print('破解中......') 
    while True:
        isdone=get_sheetpw(xls,r'D:\myjupyter\自制python 脚本工具库\044 excel文件自动解密并去除密码\文件.xlsx',p)
        p=p+1  #纯数字密码,而且不是很大,或将上句第二个参数改成彩虹表,耗时太多,
        if isdone:
            break
破解中......
破解成功!
文档密码是:123
#可以读取带密码的,已经知道密码,但是文件太多,可以用这个程序循环打开
import msoffcrypto
import io
import pandas as pd
temp= io.BytesIO()
with open("C://Users//wj//Desktop//3.xlsx","rb") as f:
    excel = msoffcrypto.OfficeFile(f)
    excel.load_key("1")
    excel.decrypt(temp)
df = pd.read_excel(temp)
df

你可能感兴趣的:(excel,python,pandas)