如何在django中将纯文本转换为哈希密码

时间:2016-12-30 06:58:31

标签: python mysql django django-models

我是Django的新手。已经从SQLite迁移到MySQL。用户相关信息存储在auth_user表中。

我有100个用户相关的用户名和密码以纯文本格式显示。我需要将它们插入到auth_user表中。我怎么能这样做?

例如,我使用下面的insert语句手动插入它们。

INSERT INTO `auth_user` (username, `password`, is_superuser ) 
VALUES ('test', 'test_password', 0)

如果我这样插入它们,我将公开纯文本密码。我想使用Django哈希密码。

1 个答案:

答案 0 :(得分:6)

您通过以纯文本格式存储密码让您的用户严重受损,但正如他们迟迟说的要好。

我认为您的用户位于auth_user以外的表中(来自django.contrib.auth)。遍历该表并为每个用户创建User实例。

调用set_password方法生成哈希密码。

  

将用户的密码设置为给定的原始字符串,并处理   密码哈希。不保存用户对象。

     

当raw_password为None时,密码将设置为不可用   密码,好像使用了set_unusable_password()。