Курс 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. Оператор морж в Python 3.8
  3. Модуль subprocess: запуск внешних команд
  4. Протокол управления контекстом
  5. Работа с часовыми поясами в Python
  6. Выбор редактора кода.
  7. Метод setitem в Python
  8. Шаблоны и наследование в Flask
  9. Функции в Python: создание и вызов
  10. Функция sleep() в Python
  11. Работа с пакетами
  12. Работа с геоданными с помощью geopy
  13. Обработка ошибок ввода данных
  14. Оператор Walrus в Python
  15. Замыкания в Python
  16. Поиск HTML-элементов с BeautifulSoup
  17. Форматирование заголовков в Python
  18. Создание словарей и множеств в Python
  19. Порядок и длина множеств в Python
  20. Сортировка в Python
  21. Извлечение новостей с newspaper3k
  22. Docstring в Python
  23. Методы работы со строками в Python
  24. Нахождение хеша для бесконечности и NaN в Python
  25. Безопасные SQL-запросы в Python 3.11
  26. Аргумент по умолчанию
  27. Метод join для наборов
  28. Удаление дубликатов с помощью множеств
  29. Декораторы в Python
  30. Документирование функций в Python
  31. Очистка строки в Python
  32. Цепные операции в Python
  33. Отладчик pdb: начало работы
  34. Повторение элементов в Python
  35. Нахождение максимального значения и его индекса в списке
  36. OrderedDict — упорядоченный словарь
  37. Логирование в Python
  38. Оператор continue в Python
  39. Измерение времени выполнения кода
  40. Вызов функций по строке в Python.
  41. Логический оператор «and» в Python
  42. Логирование с Logzero

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