Data Masker
Hide the personal details in a block of text before you paste it into a ticket, a screenshot or a chat. Tick the kinds of data that matter, choose how heavily to obscure them, and read the cleaned version as you type.
Security Notice
This page runs entirely in your browser and every value it produces is generated locally — nothing is transmitted or stored on a server. That also means no one can recover a value for you: store generated secrets in a password manager, and treat masking as display-only rather than encryption. Review your own threat model before using any output in production.
Six Kinds of Detail, Four Degrees of Cover
The page scans text for six patterns and replaces what it finds. Which patterns are searched is decided by the checkboxes, and how the matches are rewritten is decided by the style selector. The scanning runs in a deliberate order, from the most specific pattern to the loosest, and that order is the reason a card number does not get half-eaten by the phone rule. Everything happens as you type, so the cleaned text and the original sit side by side in the same view.
- Card detection accepts a run of thirteen to nineteen digits and tolerates spaces or hyphens between the groups, so both a grouped card and a solid block of digits are caught.
- The social security pattern expects the familiar three-two-four grouping with hyphens. A run of the same nine digits without hyphens is not treated as one.
- Email detection looks for a name part, an at sign and a domain, and IP detection looks for four groups of one to three digits separated by dots.
- ZIP detection matches five digits or the nine-digit form with a hyphen. Phone detection is the loosest rule and is applied last, so anything the stricter patterns already claimed is gone before it runs.
- The order across the whole scan is card, social security, email, IP, ZIP and finally phone. Each checkbox controls its own rule only, so unticking a box stops that one category from being altered and leaves the rest working.
- The ZIP box starts empty while the other five start ticked, so the default behaviour is to leave postal codes alone.
Cleaning a Block of Text
- Paste the text you want to clean into the large box. The output updates as you paste, so there is no separate run button to press.
- Untick any category you want to keep as it is. ZIP codes are left visible by default; the other five are removed by default.
- Choose a style. Asterisks keep some recognisable shape, the full mask hides more, the type style replaces each match with a label naming its kind, and the hash style substitutes a short scrambled string.
- Check the result box, which sits directly under the controls and shows the rewritten text.
- If you have unticked everything, the page refuses to guess and prints a prompt to select at least one type.
- Adjust and re-read as needed. Every change redraws the output immediately, and there is nothing to save or confirm.
The Four Styles on the Same Input
These are the page's own outputs for a handful of sample lines. The examples use the literal strings below, which is why they can be quoted exactly.
- With asterisks, the grouped card line becomes Card ****-****-****-1111 on file, and the unspaced card line becomes the identical result, because only the last four digits survive either way.
- Still with asterisks, the email example becomes Contact j***@e***.com now. The first character of the name and the first character of the domain are kept, and the rest of each part is starred, so the shape of the address is visible without the address itself.
- The phone example or 555-123-4567 becomes or 555-***-4567, keeping the leading group and the final four digits.
- The combined line SSN 123-45-6789 and IP 192.168.1.1 and ZIP 90210 becomes SSN ***-**-6789 and IP ***.**.1.1 and ZIP ***10, with the tail of each value preserved.
- Switching to the type style replaces every match with a plain label instead: the card becomes the text CREDIT_CARD in brackets, the email EMAIL, the phone PHONE, the social security number SSN, the IP address IP and the ZIP ZIP.
- The full style is uniform across every category: each match is replaced by a fixed shape built only from mask characters, so none of the original text survives. An email becomes *****@****.***, a card ****-****-****-****, a phone ***-***-****, a social security number ***-**-****, an IP address ***.***.***.*** and a ZIP code *****.
- Because the full style keeps no character of the original value, the output tells the reader that something was removed and where, but nothing about its contents. That is the most private of the four styles and the one to choose when the reader does not need to recognise the value.
- The hash style gives each match a short scrambled prefix keyed to its type. The card becomes a string starting with c, the email one starting with e and ending in three stars, the phone one starting with p, and the social security, IP and ZIP values start with s, i and z respectively.
Ways to Obscure a Detail
| Alternative | Notes |
| Partial masking with asterisks | Keeps the last few digits so a person can still confirm which card or account is meant, while hiding the bulk. It is the most readable choice when a human needs to recognise the value, and the least private, since the tail is real. |
| Full replacement with a type label | Leaves no digits at all, just a marker saying what was removed. Nothing about the original survives except its presence, which is what you want when the reader does not need to identify the value, only to know it was there. |
| Substitution with a short hash | Replaces the value with a short, stable-looking token that differs for different inputs. Two identical card numbers will yield the same token, which makes the text easier to reason about, but the token is not a real cryptographic digest and should not be treated as reversible or as a secure pseudonym. |
| Editing by hand | Deleting or retyping the sensitive parts yourself is fully reliable because you decide exactly what goes. It is slow for more than a line or two, and easy to miss something in a long log, which is where a scanner like this earns its place. |
A Pattern Matcher, Not a Compliance Tool
The page runs in your browser and uploads nothing, so text you paste here does not leave your machine. That convenience comes with limits, and it is worth being precise about them, because the tool is aimed at casual sharing rather than at a regulated workflow.
- Everything is driven by patterns, and patterns have edges. A number that is laid out unusually, a name with unexpected punctuation or a value split across lines can slip through, and a false positive can be masked by mistake.
- There is no validity check on the numbers themselves. The page does not verify that a card number passes a checksum or that a social security number is plausible, so it will mask anything that fits the shape.
- The two loosest rules interact. If the card rule is switched off but the phone rule is on, a sixteen-digit card number is treated as a phone number and reduced to its first three and last four digits joined by stars, which still leaves a partly recognisable value in the output. Leave the card rule on when the text may contain card numbers.
- The hash style is a small non-cryptographic scramble, not a one-way function. It is fine as a token to keep similar lines distinguishable, but it is not a secure anonymisation and should not be relied on to protect a value.
- Because the tool is pattern based rather than a managed data-loss-prevention service, its own guidance applies: verify the output by eye before sharing it, and for anything with legal or contractual weight use a purpose-built system.
Masking Questions
Does unticking a box change what is masked?
Yes. Each box is wired to its own rule, so clearing one stops that category from being altered while the others carry on. If every box is cleared the page refuses to produce empty output and instead asks you to choose at least one type.
Why is my unspaced card number handled the same as a spaced one?
Because the card pattern treats spaces and hyphens as optional separators and allows the final group to be anything from one to four digits. A grouped number and a solid run of the same digits therefore match the same rule and are rewritten identically, both ending in the last four digits.
Is the masked text safe to share?
It is safer than the original, but it is not a guarantee. The masking is pattern based, carries no validation, and can leave a partially recognisable value when rules interact, so read the output before you send it. For anything governed by a policy or a regulation, use a dedicated tool rather than this page.
What does the full style do?
It replaces every match with a fixed shape made only of mask characters, keeping none of the original text. An email becomes *****@****.***, a card ****-****-****-****, a phone ***-***-****, a social security number ***-**-****, an IP address ***.***.***.*** and a ZIP code *****. It is the heaviest of the four styles, and it is the right choice when the reader needs to know that a value was there but must not be able to read any part of it.
Last verified: October 7, 2026
Launch Text Data Masker
All Tools · All Tools · About · How We Test · Contact · Privacy
Maintained by Huang Bin · Last updated October 3, 2026