【问题标题】:flask password complexity checker烧瓶密码复杂性检查器
【发布时间】:2020-10-07 16:07:59
【问题描述】:

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

最少 12 个字符 至少 1 UC 至少 1 个 LC 至少 1 个 至少 1 个符号

这是我在 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'))

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

【问题讨论】:

  • 您可以使用正则表达式检查不同的标准,然后根据每个结果为密码授予安全分数并相应地返回消息。如果它太弱,您可以返回一条包含所需安全措施的消息,并将其呈现在您的网站上。
  • 真的没有像样的库来帮助解决这个问题吗?

标签: python flask passwords


【解决方案1】:

最好的方法是一个正则表达式搜索函数,它返回密码复杂性的错误。看看this

【讨论】:

  • 我最终在我的 html 中使用 javascript 在客户端执行此任务,而不必处理 Python 代码来执行此操作。我仍然必须在 javascript 端使用一些正则表达式才能使其正常工作。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多