Logo

MonoCalc

/

Text Redaction Tool

Text
Everything stays in this browser
Detection and replacement run locally in JavaScript. Your text is never uploaded, and the share link carries your settings only.

Load a sample:

246 characters · 39 words · 4 lines · 246 B

Detection categories

Redaction style

███████████████████[REDACTED][CARD]██████████████████████████████████4242CARD_1(deleted)
Used by the Label style · max 32 characters
Partial mask only
Partial mask only

Custom terms and patterns

Comma- or newline-separated names, companies, codenames or hostnames.

Redaction coverage

Clean

56 of 246 characters redacted (22.76%) · 246 B 358 B

Matches redacted

3

Matches found

3

Distinct values

3

Left in text

0

Category breakdown

Email address

1 (1 distinct)

Phone number

1 (1 distinct)

Credit card

1 (1 distinct)

246 characters · 34 words · 4 lines

About This Tool

Text Redaction Tool – Strip Sensitive Data Before You Share

Almost every request for help starts with a paste. You copy a stack trace into a public bug report, drop a customer email into a group chat, or attach a log to a vendor ticket — and somewhere in those lines sits an address, a card number, an internal hostname or an API key. Deleting each one by hand is slow, and one missed value undoes the whole effort. This text redaction tool does the sweep for you: it finds sensitive values, shows you exactly what it found, and replaces only what you approve.

What the detectors look for

Fourteen built-in detectors cover the values that leak most often: email addresses, phone numbers, URLs, IPv4 and IPv6 addresses, MAC addresses, credit card numbers, US Social Security numbers, IBANs, dates, postal and ZIP codes, API keys and tokens, UUIDs, and a heuristic matcher for person names. Each one is a regular expression tuned for the shape of the value — an email is a local part, an @, a domain and a suffix of at least two letters, while an AWS access key is AKIA or ASIA followed by sixteen upper-case characters.

Checksums keep the false positives down

Shape alone is not enough. A sixteen-digit order reference looks exactly like a card number, so card candidates must also pass the Luhn checksum: double every second digit from the right, subtract nine from anything above nine, and the total has to be divisible by ten. IBANs go through the ISO 13616 mod-97 test — move the first four characters to the end, turn letters into numbers, and the remainder must be 1. IPv4 candidates are rejected unless every octet is 255 or lower, and SSN candidates with a 000, 666 or 9xx area group are dropped because those groups are never issued.

Merging, ordering and safe replacement

Detectors overlap constantly. A URL with an email in its query string matches two patterns over the same characters, and splicing both in would produce corrupted output. Matches are therefore sorted by offset and merged, with the higher-priority detector winning — secrets beat IBANs, IBANs beat cards, cards beat phone numbers, and everything beats the postal-code and name heuristics. Replacement then walks the list right to left so that every offset still points at the right characters when its turn comes.

Choosing a redaction style

Block and character mask substitute one mask character per original character, which keeps CSV columns and log alignment intact. Label drops in a single string such as [REDACTED]. Category label writes [EMAIL] or [CARD], so a reader knows what kind of value was removed without seeing it. Partial mask keeps a few leading or trailing characters — the •••• •••• •••• 4242 convention — so the owner still recognises their own value. Pseudonym assigns a stable placeholder per distinct value, which is the only style that keeps a document analysable: if EMAIL_1 appears three times, you still know it was the same person. Remove deletes the value outright.

Pseudonymised is not anonymised
A placeholder that can be mapped back to a real value is still personal data under GDPR. The legend stays in your browser and is never put into an export or a share link on its own — if you do send it alongside the redacted text, re-identification is trivial again.

Custom terms and your own patterns

Built-in detectors cannot know your internal vocabulary. The custom term list takes any names, company names, project codenames or hostnames, escapes them so punctuation is treated literally, and matches them with optional word boundaries and case sensitivity — so art does not quietly redact the middle of start. For structured identifiers, the custom regex field accepts a full JavaScript pattern such as \bEMP-\d{6}\b, with live feedback on whether it compiles and a guard that rejects patterns matching the empty string.

Review before you trust the output

Nothing is destroyed silently. Every match appears in a table with its category, its offset and its replacement, and a switch to exclude it — because a version number that resembles an IP address or a build ID that resembles a token should survive. Excluded matches are counted in a residual risk notice so you never lose track of what you deliberately kept. A statistics panel reports how many characters were replaced, how many distinct values were found, and how the matches split across categories.

Redaction is not black boxes on a PDF

The most common redaction failure is visual rather than textual: a black rectangle drawn over a PDF or an image leaves the original text in the file underneath, recoverable by anyone who selects and copies it. Replacing characters in the source text, as this tool does, removes the data itself. Everything runs locally in your browser — the document is never uploaded, and the share link carries your settings profile only.

Frequently Asked Questions

Is the Text Redaction Tool free?

Yes, Text Redaction Tool is totally free :)

Can I use the Text Redaction Tool offline?

Yes, you can install the webapp as PWA.

Is it safe to use Text Redaction Tool?

Yes, any data related to Text Redaction Tool only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does the Text Redaction Tool work?

Your text is scanned with the detectors you enable — email, phone, URL, IPv4, IPv6, MAC, credit card, SSN, IBAN, date, postal code, API key, UUID and a heuristic person-name matcher — plus any custom terms and your own regular expression. Every hit is recorded with its category and character offsets, overlapping hits are merged so the highest-priority match wins, the ones you unchecked are dropped, and the survivors are spliced out from right to left so earlier offsets stay valid. The replacement text comes from the redaction style you picked.

Does my text get uploaded anywhere?

No. Detection, merging and replacement are plain JavaScript running on this page, and files you drop in are read locally. Nothing is sent to a server, there is no account and there is no analytics call carrying your text. The share link encodes your settings only — the detectors, the style and the formatting options — never the document, the match list or the pseudonym legend.

Why are some numbers detected as credit cards and others not?

Digit runs of 13 to 19 characters are only reported as cards when they pass the Luhn checksum, the same modulo-10 test payment networks use. That rejects roughly nine out of ten random digit strings, so order numbers and build IDs mostly fall through. IBANs get the equivalent treatment through the ISO 13616 mod-97 check, and IPv4 candidates are rejected unless every octet is 255 or lower.

What is the difference between the redaction styles?

Block and Character mask replace each character with your mask character, so column alignment survives. Label swaps in one fixed string such as [REDACTED]. Category label says what was removed without revealing it, for example [EMAIL]. Partial mask keeps a configurable number of leading and trailing characters, which is how card numbers are normally shown. Pseudonym assigns a stable placeholder per distinct value so repeated mentions stay linked. Remove deletes the value and shortens the document.

Is pseudonymisation the same as anonymisation?

No, and the difference matters legally. Pseudonymisation replaces a value with a placeholder while a mapping back to the original still exists, so under GDPR the data is still personal data. Anonymisation destroys that link irreversibly. This tool keeps the pseudonym legend in your browser only and never puts it in an export or share link unless you explicitly download it — if you do share the legend, re-identification becomes trivial again.

Can the tool guarantee that nothing sensitive is left?

No automated scanner can. Regular expressions find values that follow a predictable shape; they cannot recognise a name written in an unusual script, an address described in prose, or a detail that only identifies someone in combination with other facts. Treat the match list as a first pass, read the output before you share it, and remember that redacting a text file is very different from drawing black boxes on a PDF, where the original text usually remains underneath.