Курс 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. Работа с типами данных в Python с помощью pydantic.
  5. Использование *args
  6. Добавление цвета в консоли
  7. Тестирование функции сложения
  8. Лямбда-функции в Python
  9. Объединение словарей в Python
  10. Преобразование списка в словарь через генератор
  11. Представление бесконечности в Python
  12. Структура данных deque в Python
  13. Возврат нескольких значений
  14. Установка Python — Простое руководство
  15. Оценка точности модели
  16. Удаление символа из строки
  17. Печать календаря в Python
  18. Обработка ошибок в Python
  19. Подписка на каналы разработчиков
  20. Оператор морж в Python 3.8
  21. Измерение времени выполнения
  22. Решение переменной Шредингера
  23. discard() — удаление элемента из множества
  24. Работа с путями в Python
  25. Работа с itertools
  26. Метод getitem для доступа к элементам последовательности
  27. Декораторы в Python
  28. Работа с срезами в Numpy
  29. TypedDict для kwargs в Python 3.12
  30. Именованные аргументы в Python
  31. Изучение объектов с помощью dir()
  32. Синхронизация доступа к ресурсам
  33. Работа с getopt
  34. Расчет времени выполнения программы
  35. Атрибуты массивов в Numpy
  36. Работа с кортежами в Python
  37. Освобождение памяти в Python
  38. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  39. Поиск с помощью регулярных выражений
  40. Оператор «is not» в Python
  41. Установка и использование Telegram API в Python
  42. Циклы for в Python
  43. Работа с итераторами в Python
  44. Метод setdefault() в Python
  45. Раздувающийся словарь в Python
  46. Преобразование строки в число

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