Курс 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. Сортировка в Python
  2. Оформление кода по PEP 8
  3. Создание и удаление объектов
  4. Замена символов в строке
  5. Округление чисел с помощью round
  6. Декораторы с @wraps
  7. Пропуск строк в файле с itertools
  8. Работа с срезами в Numpy
  9. Профилирование с Pandas
  10. Отношения подклассов в Python
  11. Создание словарей и множеств в Python
  12. Изменение объектов в Python
  13. Синхронизация потоков с time.sleep()
  14. Метод __float__ в Python
  15. Работа с deque в Python
  16. Динамические маршруты во Flask
  17. Обновление данных через PUT запрос
  18. Генераторы в Python
  19. split() без разделителя
  20. Удаление URL-адресов в Python
  21. Замена символов в Python
  22. Переопределение метода len
  23. Применение промокода в Много лосося
  24. Область видимости переменных
  25. Создание графики с черепахой
  26. Разделение строк в Python
  27. Библиотека itertools: объединение списков
  28. Работа с YAML в Python: PyYAML.
  29. Мониторинг работы программы Py-spy
  30. Проверка типов с помощью isinstance
  31. Множественное назначение в Python
  32. Объединение словарей в Python
  33. Упрощение работы с JSON-данными в Python
  34. Выборка чисел
  35. Списки в Python: синтаксис представления
  36. Многострочные комментарии в Python
  37. Поиск HTML-элементов с BeautifulSoup
  38. Обмен переменными в Jupyter
  39. Строки в Python: апострофы и кавычки
  40. Расчет времени выполнения кода
  41. Использование функции enumerate()
  42. Python enumerate() для работы с индексами
  43. Использование эмодзи в Python
  44. Логирование с Logzero
  45. Отображение HTML кода в Python
  46. Функции в одну строку

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