Skip to main content

CookieCloud data decryption SDK — supports legacy and aes-128-cbc-fixed modes

Project description

cookiecloud_decrypt

CookieCloud 数据解密 SDK,纯 Python,无其他运行时依赖。

支持两种加密模式:

  • aes-128-cbc-fixed:新版 CookieCloud 服务器(MD5(key) + 零 IV)
  • legacy:旧版使用(MD5 chain + Salted__ header,与 pycookiecloud 兼容)

安装

pip install cookiecloud_decrypt

快速开始

from cookiecloud_decrypt import decrypt, to_playwright_cookies, to_cookie_str

# 1. 从 CookieCloud 服务端获取加密数据(任意 HTTP 库)
import httpx
resp = httpx.get(
    "https://your-server.com/get/YOUR_UUID",
    params={"password": "YOUR_PASSWORD"},
)
encrypted = resp.json()["encrypted"]

# 2. 解密(auto 模式自动识别格式)
data = decrypt(encrypted, uuid="YOUR_UUID", password="YOUR_PASSWORD")

# 3. 格式化输出
# Playwright add_cookies 格式
cookies = to_playwright_cookies(data, domains=[".example.com"])

# "k1=v1; k2=v2" 字符串格式
cookie_str = to_cookie_str(data, domain=".example.com", keys=["a1", "session"])

API

decrypt(encrypted, uuid, password, mode="auto")

解密 CookieCloud 服务端返回的加密数据。

参数 类型 说明
encrypted str CookieCloud GET /get/{uuid} 返回的 encrypted 字段(base64)
uuid str CookieCloud UUID
password str CookieCloud 密码
mode str 解密模式:"auto"(默认,自动检测)、"legacy""aes-128-cbc-fixed"

返回值:解密后的 dict,结构为 {"cookie_data": {域名: [CookieEntry, ...]}, "update_time": ...}

异常

  • InvalidKeyError — UUID 或密码错误
  • CorruptedDataError — 密文格式损坏

to_playwright_cookies(data, domains=None)

导出为 Playwright BrowserContext.add_cookies() 所需格式。

from playwright.async_api import async_playwright

cookies = to_playwright_cookies(data, domains=[".xiaohongshu.com"])
async with async_playwright() as p:
    ctx = await p.chromium.launch()
    await ctx.add_cookies(cookies)

to_cookie_str(data, domain, keys=None)

导出为 k1=v1; k2=v2 格式的字符串。

cookie_str = to_cookie_str(
    data,
    domain=".xiaohongshu.com",
    keys=["a1", "web_session"],
)
# → "a1=xxx; web_session=yyy"

to_cookie_dict(data, domains=None)

导出为 {域名: [CookieEntry, ...]} 格式。

开发

# 安装
pip install -e ".[dev]"

# 运行测试
pytest tests/ -v

# 端到端测试(首次需要联网录制 cassette)
cp .env.example .env
# 填入真实 COOKIECLOUD_SERVER / COOKIECLOUD_UUID / COOKIECLOUD_PASSWORD
pytest tests/e2e_test.py -v --vcr-record=new_episodes

发布到 PyPI

# 1. 安装构建工具
pip install build twine

# 2. 构建 wheel 和 sdist
python -m build

# 3. 上传到 TestPyPI(先测)
twine upload --repository testpypi dist/*

# 4. 上传到正式 PyPI
twine upload dist/*

发布后外部用户直接 pip install cookiecloud_decrypt 即可使用。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cookiecloud_decrypt-0.1.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cookiecloud_decrypt-0.1.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file cookiecloud_decrypt-0.1.1.tar.gz.

File metadata

  • Download URL: cookiecloud_decrypt-0.1.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cookiecloud_decrypt-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0d0b745632179ae6bc08a22f4bfbd259a432bca903ebddc65275492b758d8e64
MD5 9d119d6829b144029f58a319d32022f7
BLAKE2b-256 86e1d05ee8df04e26b8472a35008f13c9bd81653c2deea046e8398e6502e67d2

See more details on using hashes here.

File details

Details for the file cookiecloud_decrypt-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for cookiecloud_decrypt-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5259ac9c18b50ab2ce47e0f6f5ccad8fdc9e253e817286c3bd65a27d950c3d10
MD5 52dd6c1f644cef85d81b7285ee9ba17c
BLAKE2b-256 54068469afb622efca1572dbaf7fadd487d5c394ad891253e057b24b2ed40760

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page