Python Django用户密码的最大长度是多少?

Python Django用户密码的最大长度是多少?,python,django,django-models,django-forms,Python,Django,Django Models,Django Forms,我的问题是我不确定,因为我不了解Django中密码字段是如何工作的,也就是说,我认为这个字段没有任何max_长度,它可能会受到缓冲区溢出的攻击。这可能吗 我使用的是默认的Django用户。我在其中找到:为了解决这个问题,Django的身份验证框架现在将自动使任何超过4096字节的密码的身份验证失败 https://www.djangoproject.com/weblog/2013/sep/15/security/ 如果您只关心Usermodel中的密码,它可能是191。阅读此https://d

我的问题是我不确定,因为我不了解Django中密码字段是如何工作的,也就是说,我认为这个字段没有任何max_长度,它可能会受到缓冲区溢出的攻击。这可能吗


我使用的是默认的Django用户。

我在其中找到:
为了解决这个问题,Django的身份验证框架现在将自动使任何超过4096字节的密码的身份验证失败

https://www.djangoproject.com/weblog/2013/sep/15/security/

如果您只关心
User
model中的密码,它可能是191。阅读此
https://docs.djangoproject.com/en/2.2/ref/contrib/auth/#user-模型

Django的默认用户模型(
Django.contrib.auth
)通过中所述的用户名和密码进行身份验证

原始密码未存储在数据库中;取而代之的是散列 将存储密码的版本,并每次计算哈希值 用户试图登录

默认密码哈希器的计算成本很高,增加了使用蛮力方法进行攻击的难度

Django不会对明文的长度施加任何最大值 密码,这意味着攻击者可以简单地提交任意大的 --并保证失败——密码,迫使运行Django的服务器在 尝试检查密码。一个1兆字节大小的密码,例如 例如,将需要大约一分钟的计算来检查 使用PBKDF2哈希器

这允许通过重复提交进行拒绝服务攻击 大量的密码,占用了昂贵的服务器资源 计算相应的散列

在适当的模型中,
django.contrib.auth.base\u user
密码字段定义为
max\u length=128

类AbstractBaseUser(models.Model):
password=models.CharField(u('password'),最大长度=128)

当超过4096字节时,我无法启动此错误。您知道如何启动此错误吗?我在UTF-8计数器网络中计算字节数,并引入55.000字节。我没有得到错误,但数据库中的
max_length
在这里毫无意义b/c进入数据库的值是密码的散列,而不是密码本身。这里有些糟糕的q和a。