Библиотека позволит вам в приложениях на Питоне реализовать аутентификацию на основе протокола SRP.
Данный протокол, являясь представителем семейства PAKE (password-authenticated key agreement), позволяет одной стороне получить представление о том, обладает ли сторона противоположная знанием пароля (при этом сам пароль не пересылается). Такой способ аутентификации обладает достаточно высокой надёжностью, если сообщение производится с использованием TLS.

    from srptools import SRPContext, SRPServerSession, SRPClientSession

# На основе логина и пароля
# формируем набор (логин, сверка_пароля, соль).
# Этого набора достаточно серверу для получения
# представления о том, знает ли клиент пароль.
context = SRPContext('alice', 'password123')
username, password_verifier, salt = context.get_user_data_triplet()

# Сервер получает от клиента имя пользователя
# и, обладая сверкой_пароля, вычисляет публичный ключ.
server_session = SRPServerSession(SRPContext(username), password_verifier)
server_public = server_session.public

# Клиент получает от сервера публичный ключ и соль,
# осуществляет их обработку,
client_session = SRPClientSession(SRPContext('alice', 'password123')
client_session.process(server_public, salt)
# генерирует свой публичный ключ и ключ сессии.
client_public = client_session.public
client_session_key = client_session.key

# Сервер получает публичный ключ клиента,
# обрабатывает его
server_session.process(client_public, salt)
# и осуществляет сверку ключей сессий.
assert server_session.key == client_session_key

Приложение обладает большой гибкостью программного интерфейса, и включает в поставку консольную утилиту, позволяющую производить базовые действия из командной строки.

Читайте также:
* srptools — аутентификация при помощи SRP
Янв. 2021Июль 2021Янв. 2022Июль 2022Янв. 2023Июль 2023Янв. 2024Июль 2024Янв. 2025020k40k60k
Загрузки (pypistats.org)

Категории

Область

На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.