[英]Changing Django's default list of Common Password
我只是尝试使用 Django。 当我尝试使用 createsuperuser 创建超级用户并尝试使用一些常用密码(如 abcd1234(因为不允许使用 abc 或 123))时,它无法接受它,因为显然我的密码太常见了,我知道 createsuperuser 使用某种密码列表以匹配我的和他们的。 我想问是否可以更改密码列表。
我已经尝试打开 manage.py 来查找 createsuperuser 方法,但我没有找到它,因为它只包含 run(sys.argv)
你应该能够。
查找以下路径的文件夹:
\Python3\Lib\site-packages\django\contrib\auth
或系统上的等效项。
在其中,您应该会看到一个名为common-passwords.txt.gz
的文件。
在其中,会有一个名为common-passwords.new.txt
的文件
您应该能够更改列表中的密码。 每行一个密码。 密码应完全小写,因为 Django 会自动将密码转换为小写,以便与常用密码列表进行比较。
欢迎来到 Stackoverflow!
您也可以关注其他答案。 但是,每当您更改virtualenv
时,您都必须放置密码文件。 这是将其保留在项目中的方法。
manage.py
所在的项目文件夹中从您的项目文件夹中打开settings.py
并添加以下内容
FILE_NAME = "custom_common_password_list.txt"
在项目文件夹下创建文件custom_common_password.py
# projectname/custom_common_password.py import os from django.contrib.auth.password_validation import CommonPasswordValidator from django.conf import settings class CustomCommonPasswordValidator(CommonPasswordValidator): def __init__(self): super().__init__(password_list_path=os.path.join(settings.BASE_DIR, settings.FILE_NAME))
我们基本上是用我们的文件路径调用CommonPasswordValidator 。
修改AUTH_PASSWORD_VALIDATORS
并添加以下内容:
AUTH_PASSWORD_VALIDATORS = [ #... { 'NAME': 'projectname.custom_common_password.CustomCommonPasswordValidator', }, #... ]
我们评论现有的CommonPasswordValidator
并放置我们的自定义验证器。 确保将projectname
替换为您的项目名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.