text with every occurrence of each secret (a token, a username, a password —
values with no @ to anchor on) replaced by ***, longest first so a secret is
never left half-replaced by one of its own substrings. Only whole occurrences
count — not one inside a longer run of letters and digits — so the username user
leaves --username alone. Secrets shorter than 4 characters are skipped: they are
not plausible GENESIS credentials (a token has 32 characters, a password at least
10), and replacing them would garble the rest of the text.
textwith every occurrence of each secret (a token, a username, a password — values with no@to anchor on) replaced by***, longest first so a secret is never left half-replaced by one of its own substrings. Only whole occurrences count — not one inside a longer run of letters and digits — so the usernameuserleaves--usernamealone. Secrets shorter than 4 characters are skipped: they are not plausible GENESIS credentials (a token has 32 characters, a password at least 10), and replacing them would garble the rest of the text.