Back to questions
Junior — Middle
54
Каким образом осуществляется безопасное хранение паролей в базе данных?
Answer from AI
sobes.tech AI
Безопасное хранение паролей в базе данных достигается с помощью хеширования с использованием криптографически стойких алгоритмов и добавлением соли (random salt). Суть в том, что пароль не хранится в открытом виде, а хранится его хеш, который невозможно обратить обратно в исходный пароль.
Основные шаги:
- Генерируется уникальная случайная соль для каждого пароля.
- К паролю и соли применяется хеш-функция, например, bcrypt, Argon2 или PBKDF2.
- В базу сохраняется хеш и соль (или хеш, если алгоритм сам управляет солью).
Пример на Python с использованием библиотеки bcrypt:
import bcrypt
password = b"mysecretpassword"
salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(password, salt)
# hashed можно сохранить в базу
# Проверка пароля:
entered_password = b"mysecretpassword"
if bcrypt.checkpw(entered_password, hashed):
print("Пароль верный")
else:
print("Неверный пароль")
Использование специализированных алгоритмов с солью защищает от атак перебором и радужных таблиц.