为什么我的脚本不打印找到的密码?相反,它只是不断尝试其他密码

2024-04-24 19:58:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python3编写一个zip密码破解程序,我希望程序在找到密码时打印“foundpassword:password”。我这里的问题是,当它找到正确的密码时,它不会打印“foundpassword:password”,而是不断尝试列表中的其他单词“trying password:password”

from zipfile import ZipFile
import zipfile
import threading
import sys

filename = input("Enter File to crack: ")
wordlist = input("Enter wordlist: ")

def crackzip(filename, password):
    try:
        zipname.extractall(pwd=password)
        print ('Found password: {}'.format(password.encode('utf-8')))
        sys.exit(0)
    except:
        print ("Trying Password: {}".format(password))

def principio():
    try:
        zipname = zipfile.ZipFile(filename)
    except zipfile.BadZipfile:
        print ("File doesn't exist!")
    except FileNotFoundError:
        print ("No such file or directory")

    try:
        with open(wordlist, 'r') as f:
            passlist = f.readlines()
    except IOError:
        print ("File NOT found!")

    for passwords in passlist:
        password = passwords.strip(b'\n')
        t = threading.Thread(target=crackzip, args=(filename, password))
        t.start()

if __name__ == "__main__":
    principio()

Tags: import程序密码syspasswordfilenamefileprint
1条回答
网友
1楼 · 发布于 2024-04-24 19:58:44

crackzip函数中声明的zipname在哪里?你知道吗

try语句总是计算成这样的错误。你知道吗

import threading
import sys

filename = input("Enter File to crack: ")
wordlist = input("Enter wordlist: ")

def crackzip(zipname, password):
    try:
        zipname.extractall(pwd=password)
        print ('Found password: {}'.format(password.encode('utf-8')))
        sys.exit(0)
    except:
        print ("Trying Password: {}".format(password))

def principio():
    try:
        zipname = zipfile.ZipFile(filename)
    except zipfile.BadZipfile:
        print ("File doesn't exist!")
    except FileNotFoundError:
        print ("No such file or directory")

    passlist = []

    try:
        with open(wordlist, 'r') as f:
            passlist = f.readlines()
    except IOError:
        print ("File NOT found!")

    for passwords in passlist:
        password = passwords.strip(b'\n')
        t = threading.Thread(target=crackzip, args=(zipname, password))
        t.start()

if __name__ == "__main__":
    principio()

相关问题 更多 >