Skip to main content

Dynamic, deterministic, time-dependent path generation. No storage. No database. No dependencies. One secret phrase → one deterministic path per time period. Same phrase + same day = same path. No storage. No database. Just pure math.

Project description

Smart Dynamic Path v1.0.1

Dynamic, deterministic, time-dependent path generation. No storage. No database. No dependencies.

Generate cryptographically secure paths that change automatically based on time (day, month, hour) from a secret phrase. Perfect for hiding admin panels, creating temporary access links, or building time-based API keys.


GitHub release (latest by date) GitHub top language GitHub GitHub stars GitHub forks

PyPI - Downloads PyPI PyPI - Format PyPI Downloads PyPI Downloads PyPI Downloads


Core idea

One secret phrase → one deterministic path per time period. Same phrase + same day = same path. No storage. No database. Just pure math.


Disclaimer

By using this software, you agree to the full disclaimer terms.

Summary: Software provided "AS IS" without warranty. You assume all risks.

Full legal disclaimer: See DISCLAIMER.md


Use cases

  • Hide Django admin: /admin/a1b2c3d4e5f6g7h8/
  • Temporary download links that expire after a day
  • Time-rotating API endpoints
  • "Secret room" pattern for any web framework

and others...

Local usage without installation

git clone https://github.com/smartlegionlab/smart-dynamic-path
cd smart-dynamic-path

python -m smart_dynamic_path.cli --secret "my secret phrase"
python -m smart_dynamic_path.cli --secret "my secret phrase" --period month --full
python -m smart_dynamic_path.cli --secret "my secret phrase" --key-only

Installation

pip install smart-dynamic-path

Quick start

from smart_dynamic_path import generate_path, secret_to_path

# Generate path from secret key
path = generate_path(secret_key='your_64_hex_secret_key', period='day')
# Output: "4e30939634dfc6617f10a2f8fe259f44"

# With prefix
path = generate_path(secret_key='...', period='day', prefix='admin')
# Output: "admin/4ab3b83e39bbb1d7e31e0978ea8cea05"

# From secret phrase (local use only)
key, path = secret_to_path('my secret phrase', period='day')

CLI commands

Command Output
smart-dynamic-path --secret "secret" Full info (key + path + URL)
smart-dynamic-path --secret "secret" --key-only Only SECRET_KEY (64 hex)
smart-dynamic-path --secret "secret" --path-only Only path (32 hex)
smart-dynamic-path --secret "secret" --full Only full URL /xxxx/
smart-dynamic-path --secret "secret" --period month --full Monthly rotation
smart-dynamic-path --secret "secret" --prefix admin --full With prefix

Python API

from smart_dynamic_path import generate_secret_key, generate_path, secret_to_path

# From secret phrase
key = generate_secret_key("my secret phrase")
path = generate_path(key, period='day')
key, path = secret_to_path("my secret phrase", period='day')

How it works

SECRET_KEY = SHA256(secret_phrase)                 # 64 hex chars (256 bits)
PATH = SHA256(SECRET_KEY + date)[:16].hex()        # 32 hex chars (128 bits)
  • Secret phrase → SECRET_KEY (256 bits)
  • SECRET_KEY + current date/time → path (128 bits)
  • Path changes automatically based on period (day/month/hour/static)

Implemented paradigms

1. Pointer‑Based Security

The path is not stored anywhere. It is regenerated on demand from a secret phrase and current time. There is no stored "pointer" — only the ability to compute it.

DOI: 10.5281/zenodo.17204738

2. Local Data Regeneration

The exact path is computed locally on the developer's machine using only the secret phrase and date, without accessing any server.

DOI: 10.5281/zenodo.17264327

3. Position‑Candidate‑Hypothesis (PCH)

Among all possible paths (2¹²⁸ candidates), only one specific path generated by the secret phrase is valid at any given time.

DOI: 10.5281/zenodo.17614888

Security

  • No storage — paths are regenerated, not stored
  • Deterministic — same input always produces same output
  • 32 hex chars = 2¹²⁸ possible paths (no brute force)
  • Time-based rotation limits exposure window

License

BSD-3-Clause

Author

Alexander Suvorov @smartlegionlab

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

smart_dynamic_path-1.0.1.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

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

smart_dynamic_path-1.0.1-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file smart_dynamic_path-1.0.1.tar.gz.

File metadata

  • Download URL: smart_dynamic_path-1.0.1.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for smart_dynamic_path-1.0.1.tar.gz
Algorithm Hash digest
SHA256 f45b869dfcc09fa78134a6af11565ba6e157c42423f0a1738ffe6f91f2802937
MD5 7da95083e3c1dc9e51cb1a85ab47e301
BLAKE2b-256 e5898a3a78211c17524597cfb2dd7a3b428b4b984262aa86bc9798f4bf7277e3

See more details on using hashes here.

File details

Details for the file smart_dynamic_path-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for smart_dynamic_path-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 399ad6741d8611538a87d1b8df9dcc706271bf95609286eebceed87694db2c8d
MD5 a48e01c199808ad0fd6aa03a3eb47655
BLAKE2b-256 89fd0c98c0d399f2ef96f85bde73170a9bdcc09af1507615218ab1e2b5356e0e

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