Курс 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. Оператор continue в Python
  2. Функция map() в Python
  3. Улучшение читаемости кода в Python
  4. Работа с модулем cmath
  5. Создание namedtuple списком полей
  6. Работа с GitHub в Telegram
  7. Генераторы в Python
  8. Работа с контекстным менеджером Pool
  9. Работа с файлами в Python
  10. Работа с CSV файлами в Python
  11. Объединение списков с помощью zip
  12. Переопределение метода __or__()
  13. Проекты на Python
  14. Список методов и атрибутов
  15. Поиск всех индексов подстроки
  16. Преобразование регистра строк
  17. Форматирование чисел в Python
  18. Очистка данных с Pandas
  19. Сортировка HTML по CSS-селектору
  20. Создание итерируемых объектов
  21. Вызов функций по строке в Python.
  22. Работа с файлами в Python
  23. Аннотации типов в Python
  24. Проверка наличия элемента в списке
  25. List Comprehension Tutorial
  26. Декораторы классов
  27. Переопределение метода divmod
  28. Работа с многоуровневыми словарями в Python
  29. Работа с географическими данными.
  30. Поиск уникальных и повторяющихся элементов
  31. Определение локальных переменных в Python
  32. Работа с модулем glob в Python
  33. Блок try…finally в Python
  34. Копирование и вставка текста в Python
  35. Библиотека Rich: форматирование текста
  36. Определение основы слова с showballstemmer
  37. Построение графиков в терминале с bashplotlib
  38. Установка и использование pyshorteners
  39. Проверка типа объекта в Python
  40. Получение ID процесса
  41. Структура данных deque в Python
  42. Работа с argparse
  43. Работа с модулем random
  44. Работа с collections в Python
  45. Регулярные выражения: метод match

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