Форум сайта python.su
В библиотеке hashlib я обнаружил то ли баг, то ли фичу, или я чего-то не понимаю. Суть в том, что библиотекой hashlib хэш можно сгенерировать только один раз. После создания первого хэша, последующие хэши будут одни и те же при разных входных данных. Для понимания ситуации даю простенький код:
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)
Офлайн
Потому что ты хешируешь строку “password” вместо содержания переменной password.
self.passhash = hashlib.md5(password.encode()).hexdigest()
Офлайн
import hashlib >>> hashlib.md5(b"qwerty").hexdigest() 'd8578edf8458ce06fbc5bb76a58c5ca4' >>> hashlib.md5(b"123456").hexdigest() 'e10adc3949ba59abbe56e057f20f883e' >>> hashlib.md5(b"987654").hexdigest() '6c44e5cd17f0019c64b042e4a745412a'
Онлайн
DeeKeiD
Потому что ты хешируешь строку “password” вместо содержания переменной password.self.passhash = hashlib.md5(password.encode()).hexdigest()
Офлайн