Python

Mask Sensitive Strings (PII)

admin by @admin ADMIN
5d ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
Mask the middle of a string while keeping a few chars at each end. Useful for displaying credit cards, emails, or API keys in UI / logs without leaking the whole value.
Python
Raw
def mask_middle(s: str, keep_start: int = 4, keep_end: int = 4, mask: str = "*") -> str:
    if len(s) <= keep_start + keep_end:
        return mask * len(s)
    return s[:keep_start] + mask * (len(s) - keep_start - keep_end) + s[-keep_end:]

def mask_email(email: str) -> str:
    user, sep, domain = email.partition("@")
    if not sep:
        return mask_middle(email)
    masked = user[0] + "*" * max(1, len(user) - 2) + user[-1] if len(user) > 2 else "*" * len(user)
    return f"{masked}@{domain}"

mask_middle("4242424242424242")            # '4242********4242'
mask_email("alice@example.com")            # 'a***e@example.com'
mask_middle("sk_live_AbC1234", 8, 0)       # 'sk_live_********'
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.