flask 密码复杂性检查器

flask password complexity checker

我需要检查 flask 用户注册表单上的密码复杂性。我考虑过使用 password_strength python 库,但没有成功。我只需要检查以确保密码符合以下条件:

最少 12 个字符 至少 1 UC 至少 1 个信用证 至少 1 个 至少 1 个 Sym

这是我在 Flask 中的登录注册码:

@auth.route('/signup', methods=['POST'])
def signup_post():

    email = request.form.get('email')
    name = request.form.get('name')
    password = request.form.get('password')
    # if re.match(r"^(?=.*[\d])(?=.*[A-Z])(?=.*[a-z])(?=.*[@#$])[\w\d@#$]{6,12}$", password):

    user = User.query.filter_by(email=email).first()  # check to see if user already exists

    if user:  # if a user is found, we want to redirect back to signup page so user can try again
        flash('email address already exists')
        return redirect(url_for('auth.signup'))

    new_user = User(email=email, name=name, password=generate_password_hash(password, method='sha256'))

    # add the new user to the database
    db.session.add(new_user)
    db.session.commit()

    return redirect(url_for('auth.login'))

如您所见,我正在考虑使用正则表达式来执行此任务,但我不确定如何通知用户密码不符合复杂性要求并重新提示输入更安全的密码.谢谢

最好的方法是使用正则表达式搜索功能,returns 密码复杂性中的错误。看看this.