python的对文档密码的简单破解
生活随笔
收集整理的這篇文章主要介紹了
python的对文档密码的简单破解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近簡單學習了一下python語言,對模塊和庫有了一點了解,寫個博客作為自己學習的記錄。
這次是關于暴力破解excel密碼的程序,起因是自己的一個文檔忘記密碼了,但自己沒什么經驗,就參照了一些博客的代碼,按照自己的思路拼接而成。
首先是打開帶密碼的excel。
excel = DispatchEx("Excel.Application") # 啟動excel excel.Visible = False # 去掉可視化 demo = excel.Workbooks.Open(filename, UpdateLinks=False, ReadOnly=False, Format=None,Password=password)然后是生成密碼字典。
list1 = [chr(i) for i in range(48, 58)] # 0-9的ASCLL碼值 list2 = [chr(i) for i in range(65, 91)] # A-Z的ASCLL碼值 list3 = [chr(i) for i in range(97, 123)] # a-z的ASCLL碼值 newlist = list1+list2+list3 #看情況選擇三種中的幾種然后就是嘗試破解了。
for i in product(newlist, repeat=length): # 開始生成密碼result = ''.join(i)password = resultprint('嘗試第%d次,密碼為%s' % (currentresult,password))try:demo = excel.Workbooks.Open(filename, UpdateLinks=False, ReadOnly=False, Format=None,Password=password)excel.Visible = Truebreak# read_excel_password(filename, password)except:currentresult+=1continue最后組合一下就可以得到完整代碼。
from itertools import product from win32com.client import DispatchEx # product作用:將提供的容器中的所有元素排列組合形式按照指定的長度完全列出來 # 1.將數字、字母放入容器中 # 2.指定長度范圍 # 3.開始生成“密碼”excel = DispatchEx("Excel.Application") # 啟動excel excel.Visible = False # 去掉可視化list1 = [chr(i) for i in range(48, 58)] # 0-9的ASCLL碼值 list2 = [chr(i) for i in range(65, 91)] # A-Z的ASCLL碼值 list3 = [chr(i) for i in range(97, 123)] # a-z的ASCLL碼值 newlist = list1 print(newlist)# 指定長度范圍 currentresult=1 if __name__ == '__main__':filename = "此處是文件路徑"for length in range(4, 8):# product(字符串容器,repeat=長度)for i in product(newlist, repeat=length): # 開始生成密碼result = ''.join(i)password = resultprint('嘗試第%d次,密碼為%s' % (currentresult,password))try:demo = excel.Workbooks.Open(filename, UpdateLinks=False, ReadOnly=False, Format=None,Password=password)excel.Visible = Truebreakexcept:currentresult+=1continuebreak自己嘗試后才發現暴力破解其實根本行不通,因為自己的電腦只能做到每秒嘗試20次左右,而三位數的組合就近萬種,不過這也算是一次很不錯的嘗試。
總結
以上是生活随笔為你收集整理的python的对文档密码的简单破解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: es6 三点运算符_ES6/ES7 三点
- 下一篇: mysql 经纬度 距离 排序_MySQ