Курс 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. Обработка исключений с блоком else
  2. Расчет времени выполнения
  3. Модуль functools в Python
  4. Переворот строки с использованием цикла
  5. Методы сравнения множеств
  6. Импорт модулей и пакетов в Python
  7. Создание Telegram-бота на Python
  8. Оптимизация параметров в Python
  9. Работа со временем в Python
  10. Частичное совпадение пользовательского ввода в Python 3.10
  11. Создание объекта timedelta
  12. Создание новых списков в Python
  13. Создание графики с черепахой
  14. Форматирование заголовков в Python
  15. Проверка индексов коллекции
  16. Python-dateutil — работа с датами
  17. Локальные переменные.
  18. Поиск частых элементов в списке
  19. Создание GUI с Tkinter: Entry
  20. Работа с комплексными числами в Python
  21. Преобразование регистра строк
  22. Метаклассы в Python
  23. Форматирование чисел в Python
  24. Объединение словарей в Python
  25. Возврат нескольких значений из функции
  26. Создание списка через цикл
  27. Активация Matplotlib в Jupyter
  28. Оператор морж в Python 3.8
  29. Фильтрация списка от «ложных» значений
  30. Solidity для DeFi Ethereum
  31. Экспорт внешнего файла с помощью writefile
  32. Лямбда-функции в цикле
  33. Функция zip() в Python
  34. Многострочные комментарии в Python
  35. Функции с дополнением
  36. Получение текущей директории
  37. Вызов функций по строке в Python.
  38. Печать комбинаций в Python с Itertools
  39. Измерение времени выполнения кода
  40. Применение функции map() с лямбда-функциями
  41. Оптимизация памяти с __slots__
  42. Удаление URL-адресов в Python
  43. Модуль Antigravity в Python 3
  44. Создание списков в Python

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