在使用 Bcrypt 时,我们可能会遇到这样的问题:当用户使用重置密码功能时,新密码得到了明确的加密,但是在存储在数据库中时,一些应用程序无法将新密码保存。这是因为请求未传递正确的值或代码不正确导致的。
为了解决这个问题,我们需要尝试以下步骤:
以下是一些使用 Flask 和 Flask-Bcrypt 的代码示例:
在应用程序中设置 bcrypt:
from flask import Flask
from flask_bcrypt import Bcrypt
app = Flask(__name__)
bcrypt = Bcrypt(app)
# Usage: bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())
在 Flask 视图中使用 bcrypt:
@app.route('/reset-password', methods=['POST'])
def reset_password():
form = request.form
# Decrypt the old password using Bcrypt
old_password = bcrypt.check_password_hash(
user.password,
form.get('old_password').encode('utf-8')
)
# If old password matches
if old_password:
# Generate hash for the new password
new_password_hash = bcrypt.generate_password_hash(
form.get('new_password').encode('utf-8')
)