Проверка пароля пользователя на windows с python - PullRequest
0 голосов
/ 14 декабря 2018

Я нашел способ проверить пароль пользователя с помощью Python.Если я введу неверный пароль, он вернет: «пароль неверный», а с правильным паролем он выдаст «пароль правильный» и запишет пароль в файл.

Я пробовал это для пользователя без пароля.Если я не даю пароль или пустую строку, он все равно возвращает «неправильный пароль».Есть ли способ исправить это?

Это мой код:

try:
    win32security.LogonUser(
        username,
        domain,
        password,
        win32security.LOGON32_LOGON_NETWORK,
        win32security.LOGON32_PROVIDER_DEFAULT
    )
except win32security.error:
    tkinter.messagebox.showerror("Title", "Password wrong!")
else:

    user_password_file = open("password.txt", "a")
    if password not in open(filename1).read():
        user_password_file.write(username + ":" + password + "\n")
    tkinter.messagebox.showinfo("Title", "Password correct")

Для имени пользователя я использую это для моего графического интерфейса:

self.selected_user_var = tkinter.StringVar()
        self.selected_user_var.set(user_list[0])
        self.select_user_macos = tkinter.OptionMenu(self.user_tools, self.selected_user_var, *user_list)
        self.select_user_macos.grid(row=1, column=3, padx=5, sticky=tkinter.W, pady=5)

Списокзаполнены именами пользователей с этим:

            server = None
            level = 0
            filter_win32 = win32netcon.FILTER_NORMAL_ACCOUNT
            resume_handle = 0
            user_list = []
            while True:
                result = win32net.NetUserEnum(server, level, filter_win32, resume_handle)
                user_list += [user['name'] for user in result[0]]
                resume_handle = result[2]
                if not resume_handle:
                    break
            user_list.sort()

Для пароля я использую простую запись:

self.entry_user_password = tkinter.Entry(self.user_tools, width=30, bd=1,
                                            textvariable=self.var_user_password)
self.entry_user_password.grid(row=2, column=3, padx=5, sticky=tkinter.W, pady=5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...