不是有效的sha512_crypt哈希Python Flask Error

时间:2016-10-24 17:36:13

标签: python flask sha256

嘿,由于某些原因,每当我尝试登录登录页面时,我都会收到此错误not a valid sha512_crypt hash

注册页面:

                username = request.form['username']
                password = sha512_crypt.encrypt((str(request.form['password'])))
                email = request.form['email']

                cur.execute("INSERT INTO users (name,password,email) VALUES (?,?,?)",(username,password,email)

我的登录页面:

data = cur.execute("SELECT password FROM users WHERE name= ?", (request.form['username'],))

                data = cur.fetchone()[0]

                if sha512_crypt.verify(request.form['password'], data):
                    session['logged_in'] = True
                    session

                  #etc #etc #etc

所以当我从我的数据库填写用户名和密码时,我收到一个错误: not a valid sha512_crypt hash 在我的数据库中有加密密码,所以我的sha256加密在理论上有效。

1 个答案:

答案 0 :(得分:1)

您在使用sha256_cryptsha512_crypt创建的数据库中都有密码哈希值,但您正在使用sha512_crypt来验证这两者。那不会起作用。

为使用sha256_crypt(以$5$开头)创建哈希的用户重新创建密码,或使用passlib.apps.custom_app_context验证两者的密码。以下是the docs的一个例子:

# import the context under an app-specific name (so it can easily be replaced later)
from passlib.apps import custom_app_context as pwd_context

# encrypting a password...
hash = pwd_context.encrypt("somepass")

# verifying a password...
ok = pwd_context.verify("somepass", hash)