Курс 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. Сортировка данных в Python
  4. Создание коллекций из генератора
  5. Оптимизация поиска в словарях
  6. Работа с массивами в Numpy
  7. Отправка HTTP-запросов с User-Agent
  8. Метод enumerate() в Python
  9. Работа с библиотекой xkcd
  10. Оператор += в Python
  11. Генератор надежных паролей
  12. Лямбда-функции в defaultdict
  13. Функции any() и all() в Python
  14. Создание OrderedDict
  15. Применение команды break
  16. Глобальные переменные в Python
  17. Метод append() для списка
  18. Построение графиков в терминале с bashplotlib
  19. Работа с срезами в Python
  20. Список переменных в Python
  21. Работа с библиотекой requests
  22. Работа с timedelta в Python
  23. Импорт объектов из модулей
  24. Оператор in для проверки наличия элемента
  25. Преобразование объекта в строку
  26. Срезы в Python
  27. Работа с контекст-менеджером «with»
  28. Работа со строками в Python.
  29. Печать в одной строке
  30. Однострочники Python
  31. Переворот списка в Python
  32. Оператор is в Python
  33. Эффективная конкатенация строк с использованием join()
  34. Объединение Python и Shell
  35. Реализация операции -= для пользовательского класса
  36. Извлечение новостей с newspaper3k
  37. Определение объема памяти объекта
  38. Обработка ошибки IndexError
  39. Dict Comprehension в Python
  40. Инициализация объекта
  41. Вакансии в Nebius
  42. Округление банкира в Python
  43. Обработка ошибок в JSON данных
  44. Метод setdefault() в Python
  45. Работа с дробями в Python
  46. Оптимизация методов в Python 3.7
  47. Оператор in для Python

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