我喜欢用Python创建一个安全的登录,但是需要从数据库中检查user表,这样多个用户就可以使用自己的密码登录。 主要是这样,工作起来像一个魅力,但不安全当然。在
while True:
USER = input("User: ")
PASSWORD = getpass.getpass()
db = sqlite3.connect("test.db")
c = db.cursor()
login = c.execute("SELECT * from LOGIN WHERE USER = ? AND PASSWORD = ?", (USER, PASSWORD))
if (len(login.fetchall()) > 0):
print()
print("Welcome")
break
else:
print("Login Failed")
continue
所以我试着散列密码,当然也可以,但是我不能把它存储在数据库中去检查,所以根本就没有检查。在
^{pr2}$我尝试这样做,以便从数据库中获取密码哈希,但没有成功:
USER = input("User: ")
db = sqlite3.connect("test.db")
c = db.cursor()
hash = "SELECT HASH FROM LOGIN WHERE USER = %s"%USER
print(hash)
passwd = getpass.getpass("Password: ")
if sha256_crypt.verify( passwd, hash ):
print("Everything worked!")
else:
print("Try again :(")
所以我的问题是,为我的程序创建安全登录的最佳方法是什么?我确实需要用户表中所述的不同用户的不同登录名。我以前在MySQL上做过,但为了测试目的,我现在在sql3上尝试。所以那没关系。只要我知道该怎么做。在
你真的应该避免自己做这件事。有很多库可以正确实现这种身份验证。在
然而,遵循的模式是这样的:
(请注意,为了获得良好的安全性,您不仅需要使用现代哈希算法,还应该使用salt)。在
相关问题 更多 >
编程相关推荐