发布登录系统Python和Mysq

2024-04-24 16:52:59 发布

您现在位置:Python中文网/ 问答频道 /正文

Database Image

你好。我在python和MySQL的帮助下创建了一个登录系统,但是它不能正常工作,因为如果我输入一个在db中找到的用户名,那么这个用户名就可以使用'listforPw'中的所有密码 请阅读以下代码并查看我上传的图像:

    mycursor.execute('SELECT * FROM users')
myresult = mycursor.fetchall()
listforName = []
listforPw = []
checkUsername = input('Insert your username  : ' )
checkPassword = input('Insert your password : ')
for row in myresult:
    listforName.append(row[3])
    listforPw.append(row[4])
if checkUsername in listforName and checkPassword in listforPw:
    print('You have logged in with succes !')
else:
    print('Your credentials do not exist !')

所以问题是我不知道如何检查用户名是否与用户名行中的密码相等。你知道吗


Tags: in密码inputyour用户名rowinsertprint
1条回答
网友
1楼 · 发布于 2024-04-24 16:52:59

您的代码确实检查了您所描述的内容。if checkPassword in listforPw。你知道吗

与此相反,只查询您感兴趣的用户,并比较单个返回用户的密码。就像

mycursor.execute('SELECT * FROM users WHERE username = %s', 'theUserName')

另外,千万不要这样存储密码。使用哈希https://en.wikipedia.org/wiki/Cryptographic_hash_function

基本上,当用户输入密码时,您总是对其进行哈希处理,并且您还以哈希格式存储passwrod,因此当您比较它们时,它们将相等。你知道吗

相关问题 更多 >