Skip to main content

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

Release files for smart-dynamic-path 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smart-dynamic-path 1.0.1
File Size Uploaded
smart_dynamic_path-1.0.1.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for smart-dynamic-path 1.0.1
File Interpreter ABI Platform
smart_dynamic_path-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.1 kB

Release files / smart_dynamic_path-1.0.1.tar.gz

Download URL smart_dynamic_path-1.0.1.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f45b869dfcc09fa78134a6af11565ba6e157c42423f0a1738ffe6f91f2802937
BLAKE2b-256 checksum
How to use checksums
e5898a3a78211c17524597cfb2dd7a3b428b4b984262aa86bc9798f4bf7277e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / smart_dynamic_path-1.0.1-py3-none-any.whl

Download URL smart_dynamic_path-1.0.1-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
399ad6741d8611538a87d1b8df9dcc706271bf95609286eebceed87694db2c8d
BLAKE2b-256 checksum
How to use checksums
89fd0c98c0d399f2ef96f85bde73170a9bdcc09af1507615218ab1e2b5356e0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page