Dynamic, deterministic, time-dependent path generation
No storage. No database. No dependencies.
smart-dynamic-path — dynamic, deterministic, time-dependent path generation. 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.
Core idea: One secret phrase → one deterministic path per time period. Same phrase + same day = same path. No storage. No database. Just pure math.
Use Cases:
/admin/a1b2c3d4e5f6g7h8/pip install smart-dynamic-path
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
| 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 |
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')
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')
SECRET_KEY = SHA256(secret_phrase) # 64 hex chars (256 bits) PATH = SHA256(SECRET_KEY + date)[:16].hex() # 32 hex chars (128 bits)
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.
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.
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.
By using this software, you agree to the full disclaimer terms.
Software provided "AS IS" without warranty. You assume all risks.
Full legal disclaimer: See DISCLAIMER.md
License: BSD 3-Clause License