Я нашел способ проверить пароль пользователя с помощью 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)