你好。我在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 !')
所以问题是我不知道如何检查用户名是否与用户名行中的密码相等。你知道吗
您的代码确实检查了您所描述的内容。
if checkPassword in listforPw
。你知道吗与此相反,只查询您感兴趣的用户,并比较单个返回用户的密码。就像
mycursor.execute('SELECT * FROM users WHERE username = %s', 'theUserName')
另外,千万不要这样存储密码。使用哈希https://en.wikipedia.org/wiki/Cryptographic_hash_function
基本上,当用户输入密码时,您总是对其进行哈希处理,并且您还以哈希格式存储passwrod,因此当您比较它们时,它们将相等。你知道吗
相关问题 更多 >
编程相关推荐