Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 17 апреля 2026 10:04

Код для авторизации

Ответ нейросети

17 апреля 2026 10:04

Ниже приведён простой, понятный пример кода для авторизации на Python. Это базовая консольная реализация: регистрация пользователя, вход (логин) с проверкой пароля и создание временного токена-сессии. Подойдёт для средней школы и поможет понять основные идеи: хранение паролей в виде хеша, сравнение паролей и работа с сессиями.

Что важно понять перед кодом

  • Авторизация (authentication) — проверка личности пользователя по данным (логин/пароль).
  • Безопасность: хранить пароли как хеши с солью, а не в чистом виде.
  • Пример ниже — локальная демонстрация. Для реального приложения используйте HTTPS и надёжное управление сессиями/токенами.

Пошаговый план

  1. Создать хранилище пользователей и активных сессий.
  2. Реализовать хеширование паролей с солью.
  3. Реализовать регистрацию: создать запись пользователя с солью и хешем пароля.
  4. Реализовать вход: проверить введённый пароль, если всё ок — выдать токен (сессию).
  5. Реализовать верификацию токена: проверить, не просрочен ли токен и к какому пользователю он привязан.
  6. Привести небольшой пример использования.

Код (практический и простой для понимания)

import os import hashlib import base64 import time

class SimpleAuth: def init(self): # username -> {'salt': bytes, 'hash': bytes} self.users = {} # token -> {'user': username, 'exp': timestamp} self.sessions = {}

def _hash_password(self, password, salt=None):
    # Если соль не передали, создаём новую
    if salt is None:
        salt = os.urandom(16)
    # Хешируем пароль с использованием PBKDF2-HMAC-SHA256
    dk = hashlib.pbkdf2_hmac('sha256', password.encode('utf-8'), salt, 100000)
    return salt, dk

def register(self, username, password):
    # Регистрация нового пользователя
    if username in self.users:
        return False  # пользователь уже существует
    salt, dk = self._hash_password(password)
    self.users[username] = {'salt': salt, 'hash': dk}
    return True

def login(self, username, password):
    # Попытка входа: возвращает токен, если успешно
    user = self.users.get(username)
    if not user:
        return None
    salt = user['salt']
    _, dk = self._hash_password(password, salt)
    if dk == user['hash']:
        token = self._create_token(username)
        return token
    return None

def _create_token(self, username):
    # Создание простого токена-сессии
    token = base64.urlsafe_b64encode(os.urandom(24)).decode().rstrip('=')
    self.sessions[token] = {'user': username, 'exp': time.time() + 3600}  # срок 1 час
    return token

def verify_token(self, token):
    # Проверка валидности токена
    sess = self.sessions.get(token)
    if not sess:
        return None
    if time.time() > sess['exp']:
        del self.sessions[token]
        return None
    return sess['user']

Пример использования

if name == "main": auth = SimpleAuth()

# Регистрация пользователя
print("Регистрация alice:", auth.register("alice", "secret123"))  # True

# Попытка входа
token = auth.login("alice", "secret123")
print("Получен токен после входа:", token)

# Верификация токена
user = auth.verify_token(token)
print("Токен валиден для пользователя:", user)

# Пример неуспешного входа
bad_token = auth.login("alice", "wrongpass")
print("Попытка входа с неверным паролем вернула токен:", bad_token)

Пояснения к коду

  • Регистрация: сохраняем соль и хеш пароля для каждого пользователя в словаре self.users.
  • Хеширование: используем pbkdf2_hmac с SHA-256 и 100000 итерациями — нормальная практика для учебных задач.
  • Вход: сравниваем полученный хеш введённого пароля с сохранённым хешем; при совпадении создаём токен-сессию.
  • Токен: простой случайный токен, привязанный к пользователю и сроку действия. В реальном проекте можно использовать JWT или другую систему управления сессиями.
  • Безопасность: в примере нет базы данных, файл или переменные — это учебная демонстрация. Не храните пароли в открытом виде; ограничивайте попытки входа и обрабатывайте исключения в продакшн-коде.

Если нужна веб-реализация (например, на Flask) или другой язык/уровень сложности, скажите – адаптирую под учебную задачу.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Код для авторизации
Ниже приведён простой, понятный пример кода для авторизации на Python. Это базовая консольная реализация: регистрация пользователя, вход (логин) с проверкой пароля и создание временного токена-сессии. Подойдёт для средней школы и поможет понять основные идеи: хранение паролей в виде хеша, сравнение паролей и работа с сессиями. Что важно понять перед кодом - Авторизация (authentication) — проверка личности пользователя по данным (логин/пароль). - Безопасность: хранить пароли как хеши с солью, а не в чистом виде. - Пример ниже — локальная демонстрация. Для реального приложения используйте HTTPS и надёжное управление сессиями/токенами. Пошаговый план 1) Создать хранилище пользователей и активных сессий. 2) Реализовать хеширование паролей с солью. 3) Реализовать регистрацию: создать запись пользователя с солью и хешем пароля. 4) Реализовать вход: проверить введённый пароль, если всё ок — выдать токен (сессию). 5) Реализовать верификацию токена: проверить, не просрочен ли токен и к какому пользователю он привязан. 6) Привести небольшой пример использования. Код (практический и простой для понимания) import os import hashlib import base64 import time class SimpleAuth: def __init__(self): # username -> {'salt': bytes, 'hash': bytes} self.users = {} # token -> {'user': username, 'exp': timestamp} self.sessions = {} def _hash_password(self, password, salt=None): # Если соль не передали, создаём новую if salt is None: salt = os.urandom(16) # Хешируем пароль с использованием PBKDF2-HMAC-SHA256 dk = hashlib.pbkdf2_hmac('sha256', password.encode('utf-8'), salt, 100000) return salt, dk def register(self, username, password): # Регистрация нового пользователя if username in self.users: return False # пользователь уже существует salt, dk = self._hash_password(password) self.users[username] = {'salt': salt, 'hash': dk} return True def login(self, username, password): # Попытка входа: возвращает токен, если успешно user = self.users.get(username) if not user: return None salt = user['salt'] _, dk = self._hash_password(password, salt) if dk == user['hash']: token = self._create_token(username) return token return None def _create_token(self, username): # Создание простого токена-сессии token = base64.urlsafe_b64encode(os.urandom(24)).decode().rstrip('=') self.sessions[token] = {'user': username, 'exp': time.time() + 3600} # срок 1 час return token def verify_token(self, token): # Проверка валидности токена sess = self.sessions.get(token) if not sess: return None if time.time() > sess['exp']: del self.sessions[token] return None return sess['user'] # Пример использования if __name__ == "__main__": auth = SimpleAuth() # Регистрация пользователя print("Регистрация alice:", auth.register("alice", "secret123")) # True # Попытка входа token = auth.login("alice", "secret123") print("Получен токен после входа:", token) # Верификация токена user = auth.verify_token(token) print("Токен валиден для пользователя:", user) # Пример неуспешного входа bad_token = auth.login("alice", "wrongpass") print("Попытка входа с неверным паролем вернула токен:", bad_token) Пояснения к коду - Регистрация: сохраняем соль и хеш пароля для каждого пользователя в словаре self.users. - Хеширование: используем pbkdf2_hmac с SHA-256 и 100000 итерациями — нормальная практика для учебных задач. - Вход: сравниваем полученный хеш введённого пароля с сохранённым хешем; при совпадении создаём токен-сессию. - Токен: простой случайный токен, привязанный к пользователю и сроку действия. В реальном проекте можно использовать JWT или другую систему управления сессиями. - Безопасность: в примере нет базы данных, файл или переменные — это учебная демонстрация. Не храните пароли в открытом виде; ограничивайте попытки входа и обрабатывайте исключения в продакшн-коде. Если нужна веб-реализация (например, на Flask) или другой язык/уровень сложности, скажите – адаптирую под учебную задачу.