使用zxcvbn进行后端和前端密码验证。

django-zxcvbn-password的Python项目详细描述


django zxcvbn密码

使用zxcvbn进行后端和前端密码验证。

组合 pirandig’s django-zxcvbnaj-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

屏幕截图

https://cloud.githubusercontent.com/assets/3999221/23079032/5ae1513a-f54b-11e6-9d66-90660ad5fb2d.png

重要

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上的α释放。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java缓冲读取器和优先级队列一起工作?   java在注释与@OneToMany的关系时,是否可以定义左连接?   JSONJava8异常:com。fasterxml。杰克逊。数据类型。jsr310。应得的。InstantDeserializer没有默认(无参数)构造函数   java编写正则表达式   elasticsearch为什么Elastic Search java API忽略了我们的查询限制?   java小程序处理文件在本地工作,但在网站中失败   java停止并等待UDP服务器   java试图使用数组列表创建每个索引的双精度。复制工作不正常   java如何使用OSGi片段以相同的文件名贡献依赖于平台的本机代码?   java JGit:检索文件对象Blob而不访问其数据的最快方法   java解析周、小时和分钟   java映射器应该如何获得正确的值   for循环的java输出