Небезопасное хранение паролей
Хранение паролей в открытом виде или через быстрые хеши делает утечку базы катастрофой.
Сигнатура
Password hashing (bcrypt/argon2)Хранение паролей в открытом виде или с помощью быстрых хешей (MD5, SHA-1) опасно: при утечке базы пароли быстро восстанавливаются. Нужна устойчивая к перебору хеш-функция с солью.
Как защититься: используйте специализированные алгоритмы — bcrypt, scrypt или argon2. Они медленные и автоматически добавляют соль, что резко удорожает перебор.
import bcrypt
# Опасно: хранить пароль или его быстрый хеш
# stored = hashlib.md5(pwd.encode()).hexdigest()
# Безопасно: bcrypt с автоматической солью
hashed = bcrypt.hashpw(pwd.encode(), bcrypt.gensalt())
# Проверка при входе
ok = bcrypt.checkpw(pwd.encode(), hashed)