Пароли Django не совпадают после изменения хэшера, не удается войти в систему

#django #hash #passwords

#django #хэш #пароли

Вопрос:

Мне нужно хранить свои пароли в виде обычного текста в базе данных (это просто практический проект Django). Вот почему я добавил хэшер паролей:

 class PlainTextPassword(BasePasswordHasher):
    algorithm = "plain"

    def salt(self):
        return ''

    def encode(self, password, salt):
        assert salt == ''
        return password

    def verify(self, password, encoded):
        return password == encoded

    def safe_summary(self, encoded):
        return OrderedDict([
            (_('algorithm'), self.algorithm),
            (_('hash'), encoded),
        ])
 

Все работает нормально. Но проблема в том, что я не могу войти в систему с этими паролями, моя теория заключается в том, что Django передает уже хэшированный пароль для проверки, и именно поэтому пароли не совпадают. Я использую allauth lib. У кого-нибудь есть решение?

Комментарии:

1. вы можете просто использовать md5 для шифрования вашего пароля и сохранения его в вашей базе данных. для получения дополнительной информации ознакомьтесь с официальными документами здесь — > docs.djangoproject.com/en/2.2/_modules/django/contrib/auth /…

2. Спасибо за предложение, но мне нужны простые текстовые пароли.