Mask email addresses, phone candidates, Luhn-valid card candidates and custom names locally. Review the output before sharing sensitive text.
Use this free browser tool for a focused check of your text. Start with the fictional sample to understand the output, then analyze your own input and review the stated limits.
How to use
Paste plain text, choose the detector categories and add names or other sensitive phrases one per line. Analyze replaces matched spans with [REDACTED]. Copy the reviewed result when ready. Each option can be turned off independently.

How it works
Email detection handles common unquoted address formats. Phone detection looks for 10–15 digits in common spacing patterns. Card candidates use 13–19 digits and the Luhn checksum. A checksum match does not establish that a card exists. These are heuristics, not comprehensive identity detection.
Limits and review
Names are not automatically identified. Add them in Custom names / terms. Matching is case-insensitive literal substring matching; punctuation is escaped rather than treated as a regular expression. Overlapping matches are merged so no part of an overlapping sensitive span leaks.
Example and results
The fictional example includes demo@example.com, a reserved example phone number, a widely used test card number and Demo Person. All four should be masked with the sample settings. Counts refer to merged redaction spans, not every overlapping detector hit.
Practical guidance
Read every result before sharing it. This tool can miss addresses, account IDs, unusual phone formats, obfuscated email and contextual identifiers. It may mask ordinary long numbers. Removing explicit identifiers alone does not guarantee anonymization.
Frequently asked questions
Does it require an API?
No. This tool processes input locally in JavaScript without an external service.
Is input saved?
The tool keeps no input history or server copy. Copying places the result in your clipboard.
What happens when input changes?
The old result clears. Analyze again to generate output for the current input.
Is the result a final decision?
Names are not automatically identified. Add them in Custom names / terms. Matching is case-insensitive literal substring matching; punctuation is escaped rather than treated as a regular expression. Overlapping matches are merged so no part of an overlapping sensitive span leaks.