【发布时间】: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'))
如您所见,我正在考虑使用正则表达式来执行此任务,但我不确定如何通知用户密码不符合复杂性要求并重新提示输入更安全的密码。谢谢
【问题讨论】:
-
您可以使用正则表达式检查不同的标准,然后根据每个结果为密码授予安全分数并相应地返回消息。如果它太弱,您可以返回一条包含所需安全措施的消息,并将其呈现在您的网站上。
-
真的没有像样的库来帮助解决这个问题吗?