как войти расшифрованный пароль из базы данных в Python - PullRequest
0 голосов
/ 21 сентября 2019

я сохранил пароль в базе данных в зашифрованном виде, и это сделано, но когда я регистрируюсь по этому паролю (без шифрования), он не регистрируется, но когда я использую зашифрованный пароль, он регистрируется, но я хочу войти в систему с расшифрованного пароля.

вот что я сделал для сохранения зашифрованного пароля в базе данных.

from cryptography.fernet import Fernet
import tkinter as tk
from tkinter import messagebox
import pyodbc


Password=ttk.Entry(frame,textvariable=string,text="",show='*')

def std_register(path):
    conn = pyodbc.connect('Driver={SQL Server};''Server=SHUMAILA\SHUM;''Database=FYP;''Trusted_Connection=yes;')
    cursor=conn.cursor()

std_password=Password.get()
encrypt_password=std_password.encode()
key = Fernet.generate_key()
f = Fernet(key)
encrypted_password = f.encrypt(encrypt_password)
cursor.execute('insert into student_registeration_record(std_password)values(?)',encrypted_password
messagebox.showinfo('Registered','Successfully registered')
cursor.commit()

signup=tk.Button(root,text="Browse here",command=std_register)
signup.place()

вот что я сделал для регистрации .

оба метода выполняются для разных файлов

from cryptography.fernet import Fernet
import tkinter as tk
from tkinter import messagebox
import pyodbc


Password_txt=ttk.Entry(frame,textvariable=string,text="",show='*')

def login(event=None):
    password=Password_txt.get()
    cursor.execute('select std_password from student_registeration_record where std_password)=?',password
if cursor.fetchone() is not None:
    messagebox.showinfo("Message","Successfully login")
else:
    messagebox.showinfo("Message","Invalid username or password")
cursor.close()
conn.close()

signin=tk.Button(root,text="Browse here",command=login)
signin.place()

повторное шифрование при входе в систему, код выглядит так:

def login(event=None):
    password=Password_txt.get()
    f = Fernet(key)
    encrypt_password=password.encode()
    encrypt_password_1=f.encrypt(encrypt_password)

    cursor.execute('select std_password from student_registeration_record where std_password=?',encrypt_password_1
if cursor.fetchone() is not None:
    messagebox.showinfo("Message","Successfully login")
else:
    messagebox.showinfo("Message","Invalid username or password")
cursor.close()
conn.close()

signin=tk.Button(root,text="Browse here",command=login)
signin.place()

Это дает мне неверный логин или пароль на выходе

...