Загрузка...

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,826 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. osintermakerF3
      avatarkernz , он для пк брух?
    2. kernz
    3. View the next comments (1)
  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...