django-zxcvbn-password-validator
A translatable password validator for django, based on zxcvbn-python and available with
pip.
Professional support for django-zxcvbn-password-validator is available as part of the
Tidelift Subscription

Translating the project
This project is available in multiple language. Your contribution would be very
appreciated if you know a language that is not yet available. See
how to contribute
Language available
The software is developed in english. Other available languages are :
Creating a user with django-zxcvbn-password-validator
If the password is not strong enough, we provide errors explaining what you need to do :

The error message are translated to your target language (even the string given by
zxcvbn that are in english only) :

How to use
Add django-zxcvbn-password-validator
to your requirements and get it with pip. Then
everything happens in your settings file.
Add 'django_zxcvbn_password_validator'
in the INSTALLED_APPS
:
INSTALLED_APPS = [
"django_zxcvbn_password_validator"
]
Modify AUTH_PASSWORD_VALIDATORS
:
AUTH_PASSWORD_VALIDATORS = [
{
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
},
{
"NAME": "django_zxcvbn_password_validator.ZxcvbnPasswordValidator",
},
]
You could choose to use zxcvbn alone, but I personally still use Django's
UserAttributeSimilarityValidator
, because there seems to be still be some problem with
it integrating user information with zxcvbn (as of june 2018).
Finally, you can set the PASSWORD_MINIMAL_STRENGTH
to your liking (default is 2),
every password scoring lower than this number will be rejected :
PASSWORD_MINIMAL_STRENGTH = 0 if DEBUG else 4