使用zxcvbn进行后端和前端密码验证。
django-zxcvbn-password的Python项目详细描述
django zxcvbn密码
使用zxcvbn进行后端和前端密码验证。
组合 pirandig’s django-zxcvbn和aj-may’s django-password-strengthdjango应用程序。 它将后端和前端验证与强度计显示结合起来。
许可证
根据ISC许可证授权的软件。
安装
pip install django-zxcvbn-password
要求
此应用程序的javascript代码使用jquery,但jquery未绑定 带着它。请单独安装。您可能还想使用引导程序。
使用量
# settings.pyINSTALLED_APPS=[...'zxcvbn_password',...]AUTH_PASSWORD_VALIDATORS=[{'NAME':'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME':'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME':'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME':'django.contrib.auth.password_validation.NumericPasswordValidator',},{'NAME':'zxcvbn_password.ZXCVBNValidator','OPTIONS':{'min_score':3,'user_attributes':('username','email','first_name','last_name')}}]
# forms.pyfromdjangoimportformsfromzxcvbn_password.fieldsimportPasswordField,PasswordConfirmationFieldclassRegisterForm(forms.Form):password1=PasswordField()password2=PasswordConfirmationField(confirm_with=’password1’)
# views.pyifform.is_valid():user=User.objects.create_user(username=...,password=form.cleaned_data['password1'])
默认情况下,其他输入不会用于计算分数,但可以强制执行 像这样:
# forms.pyfromdjangoimportformsfromzxcvbn_passwordimportzxcvbnfromzxcvbn_password.fieldsimportPasswordField,PasswordConfirmationFieldclassRegisterForm(forms.Form):password1=PasswordField()password2=PasswordConfirmationField(confirm_with=’password1’)defclean(self):password=self.cleaned_data.get('password1')other_field1=...other_field2=...ifpassword:score=zxcvbn(password,[other_field1,other_field2])['score']# score is between 0 and 4# raise forms.ValidationError if neededreturnself.cleaned_data
屏幕截图
重要
password字段的小部件声明了两个必须添加到html页面的javascript文件。 为此,请在模板中添加{{ form.media }},例如:
<formrole="form"action="my_url"method="post"> {% csrf_token %} {{ form }} </form> {% block js %} {{ block.super }} {{ form.media }} {% endblock %}
注意
如果不使用引导程序,则强度条将没有颜色。 您可以使用以下三个css规则来解决此问题:
.progress-bar-warning{background-color:yellow;}.progress-bar-danger{background-color:red;}.progress-bar-success{background-color:green;}
发展
运行所有测试:tox
更改日志
2.0.3(2019-02-21)
- 为包python-zxcvbn使用新位置,现在为zxcvbn(2ea1b69)。
2.0.2(2018-08-21)
记录在案
- 改进使用说明(7A1ED42)。相关问题/减贫战略:31。
已修复
- 修复密码确认输入(fc551b8)中对super的调用。
- 改进密码验证器帮助文本(c5d21a1)。相关问题/减贫战略:46。
- 强度条颜色只有在高于最低分数(9A44FD8)时才会变绿。相关问题/减贫战略:3.
测试
- 添加django 1.11测试(815aaef)。
- 添加py37/pypy plus django 2.0测试,删除py34测试(05711cd)。
2.0.1(2017-02-17)
- 在passwordstrengthinput中修复对super的调用。
2.0.0(2017-02-17)
- 放弃对django 1.8的支持,转而使用auth_password_validators设置 在Django 1.9中引入。
- 将zxcvbn更新到更新版本(github上的dwolfhub/zxcvbn python)。
- 将javascript代码更新到最新版本。
- 删除所有设置(它们现在进入身份验证程序选项)。
- 将许可证更改为ISC。
感谢尼克·斯特凡和丹尼尔·沃尔夫。
1.1.0(2016-10-18)
- 库克宣布了这个计划。
1.0.5(2015-03-31)
- 我不记得了。
1.0.3(2015-03-12)
- 将自述切换到rst。
- 修复清单规则。
1.0.2(2015-03-12)
- 将包名从django_zxcvbn_password更改为zxcvbn_password。
1.0.0(2015-02-21)
- PYPI上的beta版本。
0.1.0(2015-02-01)
- PYPI上的α释放。