Automatically detect and mask secrets in strings and dicts.
pip install philiprehberger-secret-maskAutomatically detect and mask secrets in strings and dicts.
pip install philiprehberger-secret-mask
from philiprehberger_secret_mask import mask_secrets
data = {"username": "alice", "password": "hunter2", "api_key": "sk-abc123def456ghi789jk"}
safe = mask_secrets(data)
# {"username": "alice", "password": "***ter2", "api_key": "******************89jk"}
from philiprehberger_secret_mask import mask_secrets
log_line = "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkw"
safe_log = mask_secrets(log_line)
# Bearer token is replaced with asterisks, last 4 chars visible
from philiprehberger_secret_mask import is_secret_key
is_secret_key("db_password") # True
is_secret_key("api_key") # True
is_secret_key("username") # False
from philiprehberger_secret_mask import register_pattern, register_key, mask_secrets, is_secret_key
# Register a custom regex pattern for string scanning
register_pattern(r"CUSTOM-[A-Za-z0-9]{8,}")
mask_secrets("key is CUSTOM-abcdefghij")
# "key is **************ghij"
# Register a custom key name for dict masking
register_key("ssn")
is_secret_key("ssn") # True
mask_secrets({"ssn": "123-45-6789"})
# {"ssn": "*******6789"}
from philiprehberger_secret_mask import mask_value
mask_value("supersecret", mask_char="#", reveal_last=2)
# "#########et"
| Function / Constant | Description |
|---|---|
mask_secrets(data, *, mask_char, reveal_last) | Detect and mask secrets in a string, dict, or list |
mask_value(value, *, mask_char, reveal_last) | Mask a single string value |
is_secret_key(key) | Check if a key name matches known secret patterns |
register_pattern(pattern) | Register a custom regex pattern for secret detection |
register_key(key) | Register a custom key name for secret key detection |
_SECRET_PATTERNS | Compiled regexes for secret patterns in strings |
_SECRET_KEY_NAMES | Set of key name substrings that indicate secrets |
pip install -e .
python -m pytest tests/ -v
If you find this project useful: