步骤一、在 mysql 数据库中 创建 testdb 数据库。在 testdb 数据库中创建 tbuser 表。CREATE TABLE tbuser user_id varchar50 user_name varchar50 user_passwd varchar50 -- 经过 md5加密后的字符串 gender varchar1
由于缺乏具体的开发环境和语言要求,下面提供一个基于Python和tkinter的用户登录程序示例,请根据实际需求进行修改:
import hashlib
import tkinter as tk
import tkinter.messagebox as messagebox
import pymysql
class LoginFrame(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
self.label_user = tk.Label(self, text="用户名")
self.label_user.pack()
self.entry_user = tk.Entry(self)
self.entry_user.pack()
self.label_passwd = tk.Label(self, text="密码")
self.label_passwd.pack()
self.entry_passwd = tk.Entry(self, show="*")
self.entry_passwd.pack()
self.button_login = tk.Button(self, text="登录", command=self.login)
self.button_login.pack()
def login(self):
user_id = self.entry_user.get()
user_passwd = self.entry_passwd.get()
if not user_id or not user_passwd:
messagebox.showwarning("错误", "用户名和密码不能为空")
else:
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', database='testdb')
cursor = conn.cursor()
# 查询用户信息
sql = "SELECT * FROM tbuser WHERE user_id=%s AND user_passwd=%s"
md5 = hashlib.md5()
md5.update(user_passwd.encode('utf-8'))
passwd_md5 = md5.hexdigest()
cursor.execute(sql, (user_id, passwd_md5))
result = cursor.fetchone()
if result:
messagebox.showinfo("登录成功", "欢迎回来," + result[1])
else:
messagebox.showwarning("登录失败", "用户名或密码错误")
cursor.close()
conn.close()
if __name__ == '__main__':
root = tk.Tk()
root.title("用户登录")
root.geometry("250x150")
app = LoginFrame(master=root)
app.mainloop()
说明:
- 该示例使用了Python的tkinter库实现GUI界面,使用pymysql库进行MySQL数据库操作,使用hashlib库进行密码加密。
- 在登录按钮的事件处理函数中,首先获取用户输入的用户名和密码,然后连接数据库,查询tbuser表中是否存在该用户,并检查密码是否正确。如果查询结果不为空,则说明用户名和密码正确,弹出登录成功提示框;否则弹出登录失败提示框。
- 用户密码经过MD5加密后存储在数据库中,比明文存储更加安全
原文地址: https://www.cveoy.top/t/topic/cYO2 著作权归作者所有。请勿转载和采集!