Как хранятся пароли в БД
Python
Senior
Без компании
Как хранятся пароли в БД
Ответы
Пароли никогда не хранятся в открытом виде. Используются хеш-функции (например, bcrypt, PBKDF2, Argon2) для преобразования пароля в уникальную строку фиксированной длины. Дополнительно применяется "соль" (salt) - случайные данные, добавляемые к паролю перед хешированием, чтобы защитить от атак rainbow tables.
Пример с bcrypt:
```
import bcrypt
password = b"my_secure_password"
salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(password, salt)
# Храним только hashed в БД
print(hashed) # b'$2b$12$...'
# Проверка пароля
input_password = b"user_input"
if bcrypt.checkpw(input_password, hashed):
print("Password correct")
```
Критические моменты:
- Всегда используйте специализированные библиотеки (не самописные решения)
- Выбирайте адаптивные хеш-функции (замедленные)
- Никогда не храните пароли в логах или отладочных выводах