Форум сайта python.su
Здравствуйте, нужно очень сильно ваша помощь!
Есть готовая форма авторизации. При запуске приложения, создается база данных, эта база данных заполняется вручную через db browser. Ее нужно заполнить логинами и паролями. После этого нужно сделать так, чтобы пароли стали хэшироваными. Соответственно при вводе логина и пароля должно вылезти окошко, что авторизация прошла успешно.
Помогите пожалуйста
Ниже код
from tkinter import * import sqlite3 from tkinter import messagebox as mb import hashlib conn = sqlite3.connect('sotrudniki.db') cur = conn.cursor() cur.execute("""CREATE TABLE IF NOT EXISTS users( login TEXT, pswd TEXT);""") cur.execute("SELECT * FROM users") clr = "#072f41" fg = "#ffffff" entry ="#355e7e" aut = Tk() aut.title("Вход") aut["bg"] = clr aut.geometry('320x320') aut.resizable(width=0, height=0) def vhod(): cur.execute("SELECT * FROM users WHERE login = '" + enlog.get() + "' AND pswd = '" + enpw.get() + "'") res1 = cur.fetchone() if res1 != None: mb.showinfo("Успешно", "Вы вошли!") aut.destroy() elif enlog.get() == "" or enpw.get() == "": mb.showerror("Не успех", "Логин или пароль не введены") else: mb.showerror("Не успех", "Логин или пароль введены не верно") enlog.delete(0, END) enpw.delete(0, END) lb = Label(aut, text = "АВТОРИЗАЦИЯ", font = ("Times", 25), bg=clr, fg=fg) lb.pack(pady=20) lblog = Label(aut, text = "ЛОГИН", font = ("Times", 18), bg=clr, fg=fg) lblog.pack() enlog = Entry(aut, font = ("Times", 15), fg=fg, bg=entry) enlog.pack() lbpw = Label(aut, text = "ПАРОЛЬ", font = ("Times", 18), bg=clr, fg=fg) lbpw.pack() enpw = Entry(aut, font = ("Times", 15), fg=fg, bg=entry, show = "*") enpw.pack() bt = Button(aut, text = "Войти", font = ("Times", 25), fg=fg, bg=entry, width = 10, command = vhod) bt.pack(pady = 25, padx = 10) aut.mainloop()
Отредактировано Jonntchib (Июнь 28, 2023 13:29:11)
Офлайн
Что значит стали хешированными?
Вот ты руками заполнил базу в ней есть допустим 2 колонки login password
в них данные
UserName Password123
Ты изначально должен в поле с паролем вносить его хеш а потом уже сверять через свою форму преобзразовав пароль в тот же хеш.
К примеру можно выполнить SQL запрос
UPDATE Users SET password = MD5(password);
UPDATE Users SET password = MD5(password), pass_update = 1 WHERE pass_update=0;
Офлайн