Курс Python → Хеширование паролей с солью

Хранение хеша и соли является важным шагом для обеспечения безопасности пользовательских паролей. Для этого можно использовать различные методы хранения данных, такие как JSON, SQL, CSV или даже простой текстовый файл. Главное, чтобы пароль не сохранялся нигде в открытом виде, поскольку это может привести к утечке конфиденциальной информации. Целью использования хеша и соли является именно защита пароля от доступа злоумышленников.

Если у вас есть ограничения по месту хранения данных и вам приходится использовать только одно хранилище, то можно объединить соль и пароль вместе и сохранить их в одном месте. При этом при чтении данных вы сможете разделить их, зная длину соли и ключа. Это позволит вам эффективно и безопасно хранить пароли пользователей, не ставя их под угрозу утечки информации.


import hashlib
import os

def hash_password(password, salt):
    return hashlib.sha256(salt.encode() + password.encode()).hexdigest()

password = "mysecretpassword"
salt = os.urandom(16).hex()
hashed_password = hash_password(password, salt)

print("Salt:", salt)
print("Hashed Password:", hashed_password)

Пример кода выше демонстрирует функцию hash_password, которая принимает пароль и соль, объединяет их и вычисляет хеш с использованием алгоритма SHA-256. Соль генерируется с помощью os.urandom(16).hex(), что обеспечивает уникальность и случайность значений. Таким образом, можно безопасно хранить пароли пользователей, обеспечивая им надежную защиту от злоумышленников.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Проверка индексов коллекции
  2. Описание скриптов в README
  3. Работа с контекстными менеджерами
  4. Область видимости переменных
  5. Работа с CSV файлами
  6. Активация Matplotlib в Jupyter
  7. Извлечение данных из JSON
  8. Переопределение метода __pow__
  9. Управление контекстом с помощью декоратора contextmanager
  10. Оптимизация памяти с __slots__
  11. Настройка Cron
  12. Работа с комплексными числами
  13. Проверка типов с помощью isinstance
  14. Логические значения в Python
  15. Получение списка кортежей из словаря
  16. Форматирование строк в Python
  17. TON Smart Challenge #2: участие и подготовка
  18. Модуль itertools: комбинации и перестановки
  19. Функциональное программирование в Python
  20. Измерение времени выполнения кода в Python
  21. Создание детектора плагиата
  22. Работа с IP-адресами в Python
  23. Метод __iand__ для пользовательских классов
  24. Оценка точности модели
  25. Работа с timedelta в Python
  26. Применение функции к списку
  27. Генераторы в Python
  28. Импорт модуля из другого каталога
  29. Операции с массивами в NumPy
  30. Генерация тестовых данных с factory_boy
  31. Проверка списка: any() и all()
  32. Основы слова
  33. Динамическая типизация в Python
  34. Метод index() в Python
  35. Частичное совпадение пользовательского ввода в Python 3.10
  36. Хэш-функции и метод цепочек
  37. Конкатенация строк в Python
  38. Метод setitem в Python
  39. Оператор walrus в Python
  40. Применение команды break
  41. Замена текста в Python
  42. Удаление символа из строки
  43. None в Python: использование и особенности
  44. Метод lt для сортировки объектов

Marketello читают маркетологи из крутых компаний