import hashlib class User: def __init__(self, login: str, password: str): self.login = login self.password = password self.passhash = hashlib.md5(b'{password}').hexdigest() def __str__(self): return f"Login: {self.login}\t Password: {self.password}\t Hash: {self.passhash}" lstusers = [ User('admin', 'qwerty'), User('user1', '123456'), User('user2', '987654'), ] for user in lstusers: print(user)
После запуска этого кода вы увидите, что при совершенно разных паролях хэши этих паролей всегда будут одинаковыми, и все они от первого. Об этой фиче нигде в документации не упоминается. Я смотрел и на русском и на английском языках.
У меня возникли вопросы: Есть ли ещё какая-нибудь в Python альтернатива hashlib'у? Или этот баг как-то можно преодолеть?