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

Ven*_*aka 2 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)
Run Code Online (Sandbox Code Playgroud)

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

e4c*_*4c5 6

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

我假设您的用户不在auth_user(来自django.contrib.auth)的表中.遍历该表并为每个用户创建User实例.

调用set_password方法以生成散列密码.

将用户的密码设置为给定的原始字符串,并处理密码散列.不保存User对象.

当raw_password为None时,密码将设置为不可用的密码,就像使用了set_unusable_password()一样.

  • 抱歉,但如您所知,这不是 stackoverflow 的工作方式。请尝试使用上面给出的指南,然后如果遇到问题,请发布一个新问题。 (2认同)