我将用户从其他站点迁移到django站点。旧的网页有盐和md5密码,我正在写一个自定义哈希alghorithm,以便用户可以用他们的旧密码进行身份验证。Django未知密码哈希算法 - 编写自定义哈希算法
当我试图登录老用户,我得到:
Unknown password hashing algorithm 'my_hashed_password'. Did you specify it in the PASSWORD_HASHERS setting?
这就是我的密码散列器
class FallbackMD5PasswordHasher(BasePasswordHasher):
algorithm = "fallback_md5"
def salt(self):
return 'my_salt'
def encode(self, password):
return hashlib.md5(self.salt() + password).hexdigest()
def verify(self, password, encoded):
encoded_2 = self.encode(password, '')
return constant_time_compare(encoded, encoded_2)
def safe_summary(self, encoded):
return SortedDict([
(_('algorithm'), self.algorithm),
(_('hash'), mask_hash(encoded, show=3)),
])
这就是我的settings.py
PASSWORD_HASHERS = (
'lfs_custom.hasher.FallbackMD5PasswordHasher',
'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',
)
请给我一些信息如何解决这个:)我找不到它为什么不工作。
字符串“my_hashed_password”来自哪里?你可以查找项目文件吗? – Marat
该字符串是我的数据库中的散列密码,在登录时返回错误。 – Efrin