我对此错误提出疑问。我对瓶子,数据库和sha256_crypt相对较新,所以我希望有人可以轻松地帮助我。
我已经创建了一个登录页面,当我尝试使用正确的用户名登录时,我总是在我的浏览器中收到此错误,当密码正确且错误时。
错误:
" builtins.ValueError ValueError:格式错误的sha256_crypt哈希(校验和必须正好是43个字符)"
代码,我认为问题应该是:
@app.route('/login', methods=['GET','POST'])
def login():
if request.method == 'POST':
#get form fields
username = request.form['username']
password_candidate = request.form['password']
#create cursor
cur = mysql.connection.cursor()
#get user by username
result = cur.execute("SELECT * FROM users WHERE username = %s", [username])
if result > 0:
#get stored hash
data = cur.fetchone()
password = data['password']
#compare passwords
if sha256_crypt.verify(password_candidate, password):
app.logger.info('PASSWORD MATCHED')
else:
app.logger.info('PASSWORD DOES NOT MATCH')
else:
app.logger.info('NO SUCH USER FOUND')
return render_template('login.html')
我已经搜索了很多,但我似乎无法找到如何修复它,并且可以使用数据库中的用户名和密码登录。
提前谢谢
Robbe
答案 0 :(得分:1)
据我所知,您正在使用sha256_ crypt来加密您的密码。这将至少需要数据库中至少100个字符。可能是您的数据库无法保存您发送给它的所有字符。