tkinter 用户信息 storage/encryption

tkinter User information storage/encryption

我想弄清楚如何编写一个程序来接受用户名、密码、登录按钮、注册按钮并最终进行某种密码加密。目前该代码是一个主要 window,当点击注册时会弹出一个 window。我将调整代码以反映我所做的更改 when/as 它们已确认用于“实时”版本。 目前我正在注册window进度

我目前需要帮助的部分是当您在根 window 上单击登录时 当前 它打印到空闲“username/password 输入: ____”。我想知道如何存储和加密 username/password。 (我很可能会添加一个选项,在注册时包含电子邮件 window,这大概也需要加密和保存)

我有可能做一个 ceasar 密码的想法,但是,就安全性而言,编写一个 ceasar 密码将每个单独的字母转换为 10 位字母数字和 5 位数字(总共 15 个 5 个数字)可能并不理想& 10 个字母)随机? encryption/decryption 流程是否有更好/更理想的选择。 我确实找到了一些加密选项,但其中很多都使用多种语言,例如 sql、flask、Django,这很快就让我头疼了,很难进步

对 code/formatting 的任何和所有建议表示赞赏

from tkinter import *
from functools import partial

def validateLogin(username, password):
    print("username entered :", username.get())
    print("password entered :", password.get())
    return

def open_win():
    registration=Toplevel(root)
    registration.title("Registration Page")
    window_width=600
    window_height=400
    screen_width =registration.winfo_screenwidth()
    screen_height =registration.winfo_screenheight()
    center_x=int(screen_width/2-window_width/2)
    center_y=int(screen_height/2-window_height/2)
    registration.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')

#window
root=Tk()  
root.title('Sign in Page')

#centering window
window_width=600
window_height=400
screen_width =root.winfo_screenwidth()
screen_height =root.winfo_screenheight()
center_x=int(screen_width/2-window_width/2)
center_y=int(screen_height/2-window_height/2)
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')


#username label and text entry box
usernameLabel=Label(root, text="User Name").grid(row=0, column=1)
username=StringVar()
usernameEntry=Entry(root, textvariable=username).grid(row=0, column=2)

#password label and password entry box
passwordLabel=Label(root,text="Password").grid(row=1, column=1)  
password=StringVar()
passwordEntry=Entry(root, textvariable=password, show='*').grid(row=1, column=2)

validateLogin=partial(validateLogin, username, password)

#login button
loginButton=Button(root, text="Login", command=validateLogin).grid(row=4, column=1)  
SignUpButton=Button(root, text="Sign up", command=open_win).grid(row=4, column=2)  

root.mainloop()


在用户注册时使用文件

def onSignup(UserName,EncryptedPassword):
  f = open(UserName,"w")
  f.write(EncryptedPassword)
  f.close()

对于加密,有大量的加密库,但我建议使用不解密的库。只需加密给定的密码,并将其与文件中的加密密码进行校验,然后就可以得到结果。无需解密!