У меня есть старая база данных, где пароли пользователей хэшируются с помощью md5 без соли.Сейчас я конвертирую проект в django и мне нужно обновить пароли, не прося пользователей войти в систему.
Я написал этот хеш:
from django.contrib.auth.hashers import PBKDF2PasswordHasher
class PBKDF2WrappedMD5PasswordHasher(PBKDF2PasswordHasher):
algorithm = 'pbkdf2_wrapped_md5'
def encode_md5_hash(self, md5_hash, salt):
return super().encode(md5_hash, salt)
и преобразовал пароль как:
for data in old_user_data:
hasher = PBKDF2WrappedMD5PasswordHasher()
random_salt = get_random_string(length=8)
# data['password'] is e.g. '972131D979FF69F96DDFCC7AE3769B31'
user.password = hasher.encode_md5_hash(data['password'], random_salt)
но я не могу войти с моим тестовым пользователем.
есть идеи?: /