Курс 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. Автоматизация действий с Pyautogui
  3. Поиск файлов по шаблону
  4. Разделение функций на этапы
  5. Лямбда-функции в Python
  6. Установка пакетов с помощью pip
  7. Создание namedtuple из словаря
  8. Concrete Paths — метод .with_suffix()
  9. Метод enumerate() в Python
  10. Создание обратного итератора
  11. Переопределение унарных операторов
  12. Документирование функций в Python
  13. Изменения в обработке логических значений
  14. Декораторы в Python
  15. Оператор «not» в Python
  16. Метод __imod__ для Python
  17. Разделение строки на пары ключ-значение.
  18. Фильтрация входных данных в Python
  19. Форматирование даты с strftime()
  20. Объединение списков в строку
  21. Особенности множеств в Python
  22. Метод join для наборов
  23. Оператор += для объединения строк
  24. Преобразование строк в числа в Python
  25. Удаление элементов из списка в Python
  26. Профилирование с cProfile
  27. Сравнение строк в Python
  28. Работа с collections в Python.
  29. Создание словаря через dict comprehension
  30. Magic Commands — улучшение работы с Python
  31. Сравнение объектов в Python
  32. Генераторные функции в Python
  33. Работа с аргументами командной строки в Python
  34. Декораторы с аргументами в Python
  35. Измерение потребления памяти при сортировке
  36. Получение списка файлов в директории с использованием os
  37. Открытие и редактирование скриптов Python
  38. Функции с дополнением
  39. Форматирование строк с помощью f-строк
  40. Декоратор Ajax required
  41. Создание таблиц в Python с PrettyTable
  42. Цикл for в Python
  43. Основы Python
  44. Метод join() для объединения элементов строки
  45. Принципы LSP и ISP в Python

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