Your files never leave your device. All processing happens locally in your browser.
How do I automatically redact personal information from text?
Paste your text (or drop a .txt) into the PII Detector & Redactor and it auto-detects personal data — emails, phones, credit cards (Luhn-checked), IBAN, US SSN, India Aadhaar (Verhoeff-checked) and PAN, IP addresses and person names — then rewrites each value in the redaction style you pick: a solid █ black-box, a typed [LABEL], a partial mask that keeps only the last few characters, or full removal. You see the original and redacted text highlighted side by side, then copy or download the safe version. Everything runs in your browser; nothing is uploaded — but always review the output before sharing, because regex detection is not perfect.
Four redaction styles: black-box ████, typed [LABEL], partial (keep last N), or remove
Per-type toggles with live counts and a summary of what was removed
Side-by-side highlighted original → redacted; copy or download the .txt
100% client-side — your text never leaves the browser
What is
PII redaction
Redaction is the process of removing or obscuring personally identifiable information (PII) from a document so it can be shared without exposing sensitive data. PII redaction combines detection — finding values such as emails, phone numbers, national IDs, payment-card numbers and names, often with regular expressions plus checksum validators (Luhn for cards, Verhoeff for Aadhaar, mod-97 for IBAN) to reduce false positives — with replacement, where each found value is blacked out, swapped for a typed label, partially masked or deleted. Unlike encryption, redaction is one-way: the original value is meant to be gone from the shared copy.
No. The text you paste and any .txt you drop are read and processed entirely in your browser and are never uploaded, logged or stored on a server.
The PII Detector & Redactor is 100% client-side. Pasted text stays in the page, a dropped file is read locally with the FileReader API, and every step — pattern matching, checksum validation, redaction and building the downloadable .txt — runs in your browser with no server, no upload and no CDN in the path. Nothing is persisted, so closing the tab erases it. That makes it safe to redact genuinely sensitive documents; the only optional network use anywhere on the site is consent-gated ads, which never see your text.
Emails, phone numbers, credit cards (Luhn-checked), IBANs, US SSNs, India Aadhaar (Verhoeff-checked) and PAN, IPv4/IPv6 addresses, dates and person names.
It reuses an audited detector that pairs well-tested regexes with checksum and range validators to cut false positives: credit-card numbers are confirmed with the Luhn algorithm, IBANs with the ISO 13616 mod-97 check, India Aadhaar numbers with the UIDAI Verhoeff check digit, PAN against the AAAAA9999A format with a valid holder-type letter, and US SSNs against invalid area/group/serial ranges. It also finds emails, international phone numbers, IPv4/IPv6 addresses, dates and capitalised person names via a heuristic. Each type has its own toggle and live count, and URLs and dates are off by default because they are often not sensitive.
Black-box or remove for maximum safety; a typed [LABEL] when readers still need to see the document structure; partial (keep last 4) only when a few trailing digits are genuinely needed.
Choose by how much context the reader needs. A solid █ black-box hides the value while preserving its length; remove deletes it entirely for the cleanest result. A typed placeholder like [EMAIL] or [AADHAAR] keeps the sentence readable and shows what used to be there — ideal for redacted examples and documentation. A partial mask reveals only the last few characters (e.g. a card ending 1234) and should be used sparingly, because even a few characters plus context can sometimes re-identify someone. Whatever you pick, review the highlighted output before sharing.
No. Regex + heuristic detection misses unusual formats and context-dependent PII and can flag false positives, so always review by eye. For regulated de-identification you need a documented, audited process.
This is a fast first pass, not a guarantee. Pattern matching will miss PII in odd formats, split across lines, spelled out, or that only becomes identifying in context (addresses, medical details, handles), and name detection both misses real names and over-flags ordinary words. A clean result means “nothing obvious found,” not “definitely safe,” so always read the redacted text before sharing. It also redacts TEXT only — for images or screenshots use a blur tool, and note that merely covering or deleting visible text in a PDF can leave it recoverable in the file. For HIPAA Safe Harbor or GDPR/DPDP compliance, use a documented, audited workflow rather than a browser tool alone.
Detailed Explanation
📖How It Works
What the PII Detector & Redactor Does
This tool takes free text — pasted or dropped as a .txt — and produces a version with the personal data removed, entirely in the browser. It auto-detects emails, phone numbers, credit cards, IBANs, US SSNs, India Aadhaar and PAN, IPv4/IPv6 addresses, dates and person names, shows a live count per type, and lets you toggle any type on or off. You then choose one redaction style for the run: a solid █ black-box the same length as the value, a typed placeholder such as [EMAIL] or [AADHAAR], a partial mask that keeps only the last few characters, or full removal. The original and redacted text are shown highlighted side by side, colour-coded by type, and the redacted result can be copied or downloaded as a .txt. It is redaction-focused — the goal is a document you can safely share — and is a companion to the Data Anonymizer, which instead swaps values for consistent pseudonyms so a dataset stays analysable.
Paste text or drop a .txt; per-type toggles with live counts
Four redaction styles: black-box, typed label, partial mask, remove
Side-by-side highlighted original → redacted, colour-coded by type
Copy the redacted text or download it as a .txt
Focused on safely sharing a document, not on reversible anonymization
⚙️Methodology
How Detection Works (Regex + Checksums)
Detection reuses an audited, pure engine that pairs well-tested regular expressions with checksum and range validators to cut false positives. Credit-card candidates (13–19 digits) are confirmed with the Luhn (mod-10) algorithm; IBANs with the ISO 13616 mod-97 check; India Aadhaar numbers (12 digits, first digit 2–9) with the UIDAI Verhoeff dihedral-group check digit; PAN against the AAAAA9999A pattern with a valid holder-type letter; and US SSNs by rejecting invalid area (000, 666, 900–999), group (00) and serial (0000) ranges. IPv6 candidates are validated for a single “::” and correct group counts so MAC addresses and clock times are rejected. When two patterns overlap, a priority order lets the specific identifiers win, so a Luhn-valid card is never chopped up by the greedy phone matcher. The whole pass is synchronous and runs on every keystroke.
Credit cards validated with Luhn (mod-10)
IBAN validated with ISO 13616 mod-97
Aadhaar validated with the UIDAI Verhoeff check digit
SSN rejects invalid area/group/serial ranges; PAN checks holder-type letter
Overlap resolved by priority so IDs beat the greedy phone/name matchers
🔧Technical Details
Redaction Styles and Local Processing
A thin, fully-typed wrapper (piiRedactorEngine.ts) turns each detected span into output text. Black-box replaces the value with U+2588 FULL BLOCK characters of the same length; typed label emits [SHORT] using the entity’s code (EMAIL, PHONE, AADHAAR, PAN, CARD, SSN, IBAN, IP, DATE, NAME); partial keeps the last N characters (default 4) and boxes the rest, never exposing the whole value; remove deletes it entirely. The engine returns both the redacted string and highlight segments for the original and redacted views, plus a per-type summary, so the UI can render everything without re-scanning. The redacted text is copied via the Clipboard API and downloaded by building a Blob locally — no canvas, no network, no worker needed. Because it is pure text processing, it is fast and deterministic.
Black-box uses U+2588 blocks matching the value length
Typed label uses the entity short code, e.g. [AADHAAR]
Partial keeps the last N characters; the full value is never revealed
Engine returns redacted text + highlight segments + a per-type summary
Copy via Clipboard API; download by building a Blob locally
⚠️Limitations
Honest Limitations
Regex and heuristics are a fast first pass, not comprehension. The tool will MISS PII in unusual formats, split across lines, spelled out, or that is only identifying in context (postal addresses, medical details, account handles), and person-name detection both misses real names and over-flags ordinary capitalised words. Checksums reduce noise but cannot catch everything, and disabling a type or an odd format will let data through. So a clean result means “nothing obvious found,” not “definitely safe” — ALWAYS review the highlighted output before sharing. Crucially, this redacts TEXT only: for images or screenshots use the Privacy Blur tool, and remember that simply drawing a box over text in a PDF, or deleting visible text, can leave the underlying content recoverable in the file — use a real redaction/flatten workflow and verify by trying to select the hidden text. For regulated de-identification (HIPAA Safe Harbor, GDPR, India’s DPDP) you need a documented, audited process, not a browser tool alone.
Misses odd formats, multi-line and context-dependent PII
Name detection both misses names and raises false positives
A clean result is not proof — always review before sharing
Redacts TEXT only; PDFs/images can leave content recoverable
Not a substitute for audited HIPAA / GDPR / DPDP de-identification
🔒Privacy & Security
Private by Design
Everything happens on your device. Pasted text is React state and a dropped file is read locally with the FileReader API; all pattern matching, checksum validation and redaction run in the browser with no upload, no server, no CDN and no telemetry in the path. Because the text never leaves your machine, it is safe to redact genuinely sensitive documents — unlike an online redaction service that would receive your raw text. The downloadable .txt is built in-browser with a Blob and never uploaded. Nothing is persisted, so closing the tab erases everything, and the tool works offline once cached. The only optional network use anywhere on the site is consent-gated ads, which never see your text.
Text is processed locally; no upload, server, CDN or telemetry
Dropped files read with FileReader; download built with a local Blob
Safe for sensitive documents, unlike an online redaction service
Nothing persisted — closing the tab erases everything; works offline
Only optional network use is consent-gated ads
Ways to remove personal data from text
Approach
What it does
Trade-off
This tool
Redaction (this tool)
Blacks out / removes PII for safe sharing
One-way; regex may miss or over-flag — review needed
Yes
Anonymization (pseudonyms)
Swaps PII for consistent fakes
Keeps data analysable; not for public sharing
Use Data Anonymizer
Manual find-and-replace
You edit each value by hand
Accurate but slow and error-prone at scale
Complements it
Online redaction service
Redacts on a server
Uploads your raw sensitive text
No — never
Redaction is one-way and meant for sharing; anonymization keeps a dataset usable. Detection here is regex + heuristic, so always review the output. Everything runs locally in the browser. As of July 2026.