您可以使用django.contrib.auth.hashers.MD5PasswordHasher
初始密码。根据关于 Django 如何存储密码的 Django 文档,
默认情况下,Django 使用带有 SHA256 哈希值的 PBKDF2 算法,这是 NIST 推荐的密码拉伸机制。这对大多数用户来说应该足够了:它非常安全,需要大量的计算时间才能破解。
[...]
Django 通过查询 PASSWORD_HASHERS 设置来选择算法。这是这个 Django 安装支持的散列算法类的列表。此列表中的第一个条目(即 settings.PASSWORD_HASHERS[0])将[默认]用于存储密码,所有其他条目都是可用于检查现有密码的有效哈希器。[...]
PASSWORD_HASHERS 的默认值为:
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
'django.contrib.auth.hashers.SHA1PasswordHasher',
'django.contrib.auth.hashers.MD5PasswordHasher',
'django.contrib.auth.hashers.CryptPasswordHasher'
)
因此,您希望保持现在的默认值,但在开始时使用较弱的哈希;确保MD5PasswordHasher
存在于列表中。然后使用
make_password(pwd, None, 'md5')
最初生成一个普通的加盐 MD5 密码;如果初始密码足够随机,这不会太弱。随着用户更改密码,他们的密码将使用更强大的算法进行加密。