如何加密django中的密码字段

Sah*_*kar 3 python encryption passwords django

我有一个名字,代码和密码的模型.我需要加密密码.另外,我不应该在密码字段中显示纯文本.我提到了这个链接

Django模型中的密码字段

但答案是陈旧的,需要知道目前的方法是什么.

我的模型如下

class Crew(models.Model):
    crew_id = models.AutoField(primary_key=True)
    crew_code = models.CharField(max_length=200, null=False, unique=True)
    crew_name = models.CharField(max_length=200, null=False)
    crew_password = models.CharField(max_length=200, null=False)
Run Code Online (Sandbox Code Playgroud)

Exp*_*tor 7

在你看来

from django.contrib.auth.hashers import make_password
crew_password = 'take the input if you are using form'
form = FormName(commit=False)
form.crew_password=make_password(crew_password)
form.save()
Run Code Online (Sandbox Code Playgroud)


小智 6

将其添加到您的模型中:

def save(self, *args, **kwargs):
    self.crew_password = make_password(self.crew_password)
    super(Crew, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

并在表单中隐藏密码字段中的文本:

password = forms.CharField(
    widget=forms.PasswordInput
)
Run Code Online (Sandbox Code Playgroud)