【问题标题】:Simple Python Excel password crack - Brute Force简单的 Python Excel 密码破解 - 蛮力
【发布时间】:2019-02-05 23:45:10
【问题描述】:

为了演示,我想破解一个 excel 文件(名为“xl”)的密码。我使用以下代码,但是(1)它无法打开 excel 并且(2)它在密码被破解时不会停止运行。

import itertools
import string 
from win32com.client import Dispatch

file = input('Path: ')

chars = string.ascii_lowercase + string.digits

for password_length in range(1, 2):
    for password in itertools.product(chars, repeat=password_length):
        password = ''.join(password)

        print ('Testing password: '+ password)
        instance = Dispatch ('Excel.Application')

        try:
            instance.Workbooks.Open(file, False, True, None, password)
            print ('Password Cracked: ' + password)
            #break

        except:
            pass  

为了简单起见,我将 excel 密码设置为“p”,代码只运行了 1 个字符组合。此外,当您运行代码时,它需要输入 excel 文件的路径。

我无法弄清楚我的错误,我希望能得到一些帮助。另外,如果对 word 文档执行此操作更容易,请告诉我。

【问题讨论】:

  • try: 块中的break 行已被注释掉,因此在破解密码时不会执行它,只会继续执行 for 循环
  • 感谢您的回答。我评论了这一行,因为当它使用 break 命令运行程序时,它会在第一次迭代中停止。
  • 在这种情况下,如果instance.Workbooks.Open() 无法打开工作簿,它似乎不会引发错误。您可能想要存储instance.Workbooks.Open() 的结果并检查它是否为None,而不是try/catch
  • 当我运行instance.Workbooks.Open(file) 时,我得到<COMObject Open>

标签: python excel passwords


【解决方案1】:

循环不会停止,因为您已将 #break 注释掉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多