Курс 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. Работа с контекстными менеджерами
  4. Метод join() с набором
  5. Логический оператор «and» в Python
  6. Обновление шаблона base.html
  7. Работа с словарями в Python
  8. Удаление файлов и папок в Python
  9. Подсчет элементов с помощью Counter из collections
  10. Оценка точности модели
  11. Работа с срезами в Python
  12. Работа с URL-адресами в Python
  13. Непрерывная проверка в Python
  14. Python: изменяемые и неизменяемые коллекции
  15. Переворот строки с помощью срезов
  16. Декодирование строк в Python
  17. Округление чисел с помощью round
  18. Добавление элемента в список.
  19. Метод join() для объединения элементов строки
  20. Инициализация объекта
  21. Работа с аргументами командной строки в Python
  22. Форматирование заголовков в Python
  23. Использование type hints
  24. Метод join() для объединения элементов в строку.
  25. Константы в модуле cmath
  26. Работа с Telegram API на Python
  27. Базовые объекты Python
  28. Значения по умолчанию в Python
  29. Закрытие файла в Python
  30. Библиотека Chartify: руководство
  31. Работа с датой и временем в Python
  32. Импорт модулей в Python 3.12
  33. Antigravity модуль
  34. Использование defaultdict в Python
  35. Списки в Python
  36. Создание графики с черепахой
  37. Извлечение новостей с newspaper3k
  38. Оператор «моржа» (Walrus Operator)
  39. Сортировка в Python
  40. Атрибуты массивов в Numpy
  41. Использование метода lower()
  42. Нахождение хеша для бесконечности и NaN в Python
  43. Наиболее частотные элементы с помощью Counter
  44. Библиотека Rich: форматирование текста
  45. Создание namedtuple из словаря
  46. Оператор is в Python
  47. Преобразование данных в Python

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