Загрузка...

Telegram | Getting StringSessionn by Auth Key and DC ID with the subsequent entrance to the Telethon account

Thread in Your projects created by жизнь Jun 8, 2025. (bumped Tuesday at 5:57 PM) 30,774 views

  1. жизнь
    ⁡telegram_session_encoder.py
    ⁡ — Данный модуль позволяет создать строку StringSession для последующего использования, используя уже auth_key и DC ID.
    ⁡main.py
    ⁡ — Пример использования модуля: создаёт StringSession работает с аккаунтом Телеграма через Telethon. (В примере используется невалидный auth_key для демонстрации)

    Python
    import base64
    import ipaddress
    import struct
    from dataclasses import dataclass
    from typing import ClassVar, Mapping


    @dataclass(frozen=True)
    class TelegramSessionEncoder:
    """
    Encodes a Telegram session using a given auth_key and data center ID (dc_id).
    Produces a base64-encoded string suitable for use with Telegram clients.
    """
    auth_key: bytes
    dc_id: int

    _VERSION: ClassVar[str] = "1"
    _PORT: ClassVar[int] = 443
    _DC_IP_MAP: ClassVar[Mapping[int, str]] = {
    1: "149.154.175.53",
    2: "149.154.167.51",
    3: "149.154.175.100",
    4: "149.154.167.91",
    5: "91.108.56.130"
    }

    def to_string(self) -> str:
    """
    Converts the session to a base64-encoded string.
    Format: <VERSION><base64(dc_id | ip | port | auth_key)>
    """
    ip_bytes = self._resolve_ip()
    payload = self._build_payload(ip_bytes)
    encoded = base64.urlsafe_b64encode(payload).decode("ascii")
    return f"{self._VERSION}{encoded}"

    def _resolve_ip(self) -> bytes:
    """
    Resolves the IP address for the given DC ID.
    Returns packed IP in bytes.
    """
    ip = self._DC_IP_MAP.get(self.dc_id)
    if not ip:
    raise ValueError(f"Unknown data center ID: {self.dc_id}")
    return ipaddress.ip_address(ip).packed

    def _build_payload(self, ip_bytes: bytes) -> bytes:
    """
    Builds the binary payload to be encoded.
    Structure: <dc_id:1B><ip:N><port:2B><auth_key:256B>
    """
    if len(self.auth_key) != 256:
    raise ValueError("auth_key must be exactly 256 bytes")
    fmt = f">B{len(ip_bytes)}sH256s"
    return struct.pack(fmt, self.dc_id, ip_bytes, self._PORT, self.auth_key)
    Python
    import asyncio
    from dataclasses import dataclass
    from telethon import TelegramClient
    from telethon.sessions import StringSession

    from telegram_session_encoder import TelegramSessionEncoder


    @dataclass(frozen=True)
    class APIConfig:
    api_id: int = 2040
    api_hash: str = "b18441a1ff607e10a989891a5462e627"
    device_model: str = "Desktop"
    system_version: str = "Windows 10"
    app_version: str = "3.4.3 x64"
    lang_code: str = "en"
    system_lang_code: str = "en-US"
    lang_pack: str = "tdesktop"


    async def main():
    auth_key_hex = "9b9067d02925853f458acc6405822ec63f7a227177d6a1b207d64dd8d52c3234ed8ad97d1de8c65ea570bc25ae527c14cb6d90107f2bbc5fa6d1d84db69c2b7e1776d59296276f7024e1d092cb24188125d93f3cc16a15fd2c61cd80c49dd62422b13467693f8a5201a329aa031f52af2d48781803bc8721f8ac907e8df13d17c6f8337441fe5337f91c2f721a5fcbde73aa3368c91ed130489640e94204262e9076ac547322ee57f91c44502ec90e2dbd7d793e76de7b27a36a29050b6562e9236525e9c8abcafb3d30a64ddec7971328d9a60dc4b759b30204134347888a12bd7d1e1ada5aebeda40a0d67b7e088c3898598368b28a327fcd204ef47cd2792"

    auth_key = bytes.fromhex(auth_key_hex)
    dc_id = 5

    session_encoder = TelegramSessionEncoder(auth_key, dc_id)
    string_session_str = session_encoder.to_string()

    string_session = StringSession(string_session_str)

    api_config = APIConfig()

    async with TelegramClient(
    session=string_session,
    api_id=api_config.api_id,
    api_hash=api_config.api_hash,
    device_model=api_config.device_model,
    system_version=api_config.system_version,
    app_version=api_config.app_version,
    lang_code=api_config.lang_code,
    system_lang_code=api_config.system_lang_code,
    ) as client:
    me = await client.get_me()
    print(f"Logged in as: {me.first_name}")


    if __name__ == "__main__":
    asyncio.run(main())
    Thread restrictions:
    The topic author allowed to post messages in the topic only to the following groups (and higher ranked): Local, Staff Members and Curators
     
    1. View previous comments (6)
    2. жизнь Topic starter
      avatarOes194, я ничего не понял, пиши другим
    3. salfetka797
      avatarжизнь, как убрать чужой код пароль и фейс айди, то есть полностью обезопасить аккаунт?
    4. жизнь Topic starter
  2. gsdjy2jrg
    [IMG]
    На днях искал решение данной проблемы, пришлось самому делать) Telethon
     
  3. Corsair
    Corsair Jun 13, 2025 8,069 Sep 1, 2024
    Не по форме - переместите код в репозиторий github и укажите в префиксе основной язык.
     
    1. жизнь Topic starter
  4. saintby
    saintby Aug 1, 2025 10 Jan 20, 2023
    откуда брать auth_key (auth_key_hex)?
     
    1. View previous comments (2)
    2. жизнь Topic starter
      avatarsaintby, давай сначала разберемся для чего тебе вообще данный код?)
    3. saintby
      avatarжизнь, сконвертировать telethon -> tdata, оставили ссылку на данную тему
    4. жизнь Topic starter
      avatarsaintby, тебе эта тема не поможет
  5. Wirtuoz_inactive9648943
    Как зайти в аккаунт? Показывает нужен код из почты
     
    1. жизнь Topic starter
  6. Omar7000
    Omar7000 Sep 26, 2025 0 Sep 26, 2025
    я не понимаю что значит auth key и dc id
    The post was merged to previous Sep 26, 2025
    мне это нужно если я для личного использования взял аккаукнт?
     
    1. жизнь Topic starter
  7. Octocat-fill SVG Icon
    Falley
    ебать, очень удобно, когда акки с маркета получаешь)
     
    1. жизнь Topic starter
      avatarFalley , считай для этого и делал :D
  8. kernz
    kernz Sep 28, 2025 Banned 1,717 Jun 29, 2021
    ваши руки целовал за столь чудесный код и самое главное ПОЛЕЗНЫЙ код
     
    1. View previous comments (3)
    2. kernz
    3. жизнь Topic starter
    4. kernz
  9. osintermakerF3
    где вы все эти коды пишите, помогите пожалуйста
     
    1. View previous comments (1)
    2. osintermakerF3
      avatarkernz , он для пк брух?
    3. kernz
    4. жизнь Topic starter
  10. DianaRider
    Зайдет на акк если сессии полетели?
     
    1. жизнь Topic starter
  11. blydorez
    blydorez Oct 23, 2025 0 Oct 22, 2025
    есть файл сессия зайдет?
     
    1. жизнь Topic starter
  12. Fistashka01
    Подскажи, пожалуйста, как скопировать этот auth key, DC ID и скачать .json файл из купленного аккаунта с помощью скрипта. У меня уже есть скрипт, который покупает аккаунт, но никак не понимаю как скопировать данные в том же коде.
     
    1. жизнь Topic starter
    2. Fistashka01
      avatarжизнь, я понял, но не понимаю как это сделать
    3. жизнь Topic starter
      avatarFistashka01, обратиться к специалисту, который за деньги тебе это реализует
  13. lilshimi
    lilshimi Nov 11, 2025 0 Nov 11, 2025
    нету пароля от облачного пароля че делать
     
    1. жизнь Topic starter
  14. lilshimi
    lilshimi Nov 11, 2025 0 Nov 11, 2025
    1. жизнь Topic starter
      avatarlilshimi, пароль можешь спросить у avataruncpfiae , это его аккаунт
Loading...