Choose the columns that hold personal data, pick a replacement for each one, and download a masked copy. Your file stays in your browser.
This tool runs entirely in your browser. What you enter is never sent anywhere.Your input is never sent anywhere.
DetailsPaste or upload your CSV
Load a CSV and the column settings will appear here.
Check the preview before you download. Columns you did not select are copied unchanged.
How column masking replaces personal data in a CSV
A customer export, a support log or an order history usually mixes a few columns of personal data (name, email, phone) with columns you actually need for the work (dates, amounts, categories). Deleting rows or scrambling the whole file throws away the second group along with the first.
This tool masks only the columns you pick. For each one you choose how it is replaced: a fake full name, first name, last name or email address, a sequential token such as CUSTOMER_ID_1, a partial mask that keeps the first character or the last four, or a fixed [REDACTED] label.
Turn on consistent replacement and the same input always gets the same fake value within a column. A customer with five orders stays one customer, so counts and repeat-purchase patterns survive. All processing happens in your browser.
Use cases: test data, vendor handoffs, AI uploads
Before you paste order data into an AI chat
Replace names and emails first, then ask the AI to find trends or summarize support tickets without handing over real customer identities.
Building test or staging data from a real export
Keep the row count, formats and edge cases of production data, and swap out only the columns that identify people.
Sending a file to a vendor, contractor or support team
Share a sample that reproduces a bug or supports an analysis, with contact details masked, in a ticket, a forum post or an email.
Analyzing repeat customers without knowing who they are
With consistent replacement on, rows from the same person keep matching, so you can count repeat purchases or group activity by customer.
Replace names and emails in a CSV in 4 steps
- Paste your CSV or choose a file, pick the delimiter, and click Load CSV.
- Review the column list. Tick the columns to mask and pick a replacement type for each one.
- Choose whether consistent replacement is on or off, then click the Mask button.
- Check the preview, download the masked file, and download the mapping table if you need to look up original values later.
Note: Your CSV and the mapping table are held in browser memory only, and they disappear when you reload or close the page.
Before you download: limits and checks
- Pre-selected columns are a guess from the header text. Read every column name and sample value yourself. Columns you do not select are copied unchanged.
- The file is read as UTF-8. Save it as "CSV UTF-8" first if accented characters look wrong.
- Partial masks, last-4 masks and fixed text are one-way. They never appear in the mapping table.
- First-name and last-name replacements come from a short built-in list, so two different people can end up with the same fake first name. Full names and emails are kept unique within a column.
- If a row has more cells than the header row, the extra columns are added as "Column N" so they can be masked too.
Replacement types and example output
The nine options in the column dropdown and what each one does to a value.
| Replacement type | Before | After (example) |
|---|---|---|
| Full name (fake) | James Carter | Olivia Bennett |
| First name (fake) | James | Noah |
| Last name (fake) | Carter | Hughes |
| Email address (fake) | [email protected] | [email protected] |
| Sequential token (column customer_id) | C-00231 | CUSTOMER_ID_1 |
| Partial mask (keep first character) | Carter | C***** |
| Partial mask (keep last 4) | 212-555-0134 | ********0134 |
| Fixed text | 42 Oak Street | [REDACTED] |
Fake names and emails are picked from a built-in list, so your output will differ from these examples. The consistent option applies to the name, first name, last name, email and token types. The partial, last-4 and fixed types follow a set rule and ignore it.
Pseudonymization vs. anonymization for CSV data
What column masking does, and what it does not do.
Why a raw customer export is risky to share
A customer list or support log holds names, emails and phone numbers of real people. Sending the raw file to a vendor, a shared drive or an AI chat gives all of that away, even when the task only needs the dates and amounts.
Masking just the identifying columns lets you hand over what the work needs and keep the rest back.
Masking columns vs. deleting rows or columns
Deleting the personal columns breaks the link between rows, and deleting rows changes your totals. Masking keeps the shape of the data: the same number of rows, the same column layout and, with consistent replacement on, the same grouping of rows by person.
That is what test data, bug reports and repeat-customer analysis usually need.
Consistent replacement: when to turn it on or off
Keep it on when you need to count or group by person, for example orders per customer or tickets per agent.
Turn it off when you want each row to stand alone, such as a sample dataset for a tutorial. Each occurrence then gets its own fake value and no mapping table is created.
Masking is not full anonymization
Replacing a name and an email does not stop someone from identifying a person through the columns you left alone. ZIP code plus birth date plus job title can be enough, and free-text notes often contain names or phone numbers.
Treat the output as pseudonymized data, check what remains, and mask or remove any other column that could point to a person. Data that can still be linked back to an individual may remain personal data under laws such as the GDPR.
Common masking mistakes and fixes
A personal-data column was not selected
A header such as "cust_display" or "contact" did not match the automatic guess, so the column was downloaded with real values in it.
💡 See the solution▼
Personal data hiding in a free-text column
A notes or comments column contains lines like "call Maria on 212-555-0134", and it was left as is.
💡 See the solution▼
Closing the page without saving the mapping table
Consistent replacement was on, but the mapping table was never downloaded, so nobody can say which fake name was which customer.
💡 See the solution▼
Using a partial or fixed mask on a column you need to group by
A last-name column was set to Fixed text, so every row now shows [REDACTED] and repeat customers can no longer be told apart.
💡 See the solution▼
Sharing the file without looking at the preview
A wrong delimiter or a skipped column went unnoticed, and the shared file still had real values in it.
💡 See the solution▼
Questions about masking and restoring CSV data
Q.How do I choose which columns to mask?
A. After you load the file, every column is listed with a checkbox and a replacement type. Columns whose header looks like a name, email, phone number, ID or address are pre-selected based on the header text. Everything else starts as "Leave as is". Tick or untick columns and change the type for each one before you run the masking.
Q.What does the consistent replacement option do?
A. With it on, the same value in a column always becomes the same fake value, so a customer who appears in five rows still looks like one customer. With it off, every occurrence gets a new fake value, so rows can no longer be linked to each other, and no mapping table is created.
Q.Can I get the original values back after masking?
A. Only if you keep the mapping table. With consistent replacement on, the tool lists each original value next to its fake value for the name, email and token types, and you can download that list. Partial masks and fixed text are one-way and are not in the table. The tool has no restore button, and the mapping table contains the real values, so store it as carefully as the original file.
Q.Is my CSV uploaded to a server?
A. No. Reading the file, parsing it, masking the columns and building the download all run as JavaScript in your browser. The tool does not send your file contents anywhere.
Q.Why do accented or special characters look wrong?
A. The tool reads files as UTF-8. A file saved in another encoding, such as the ANSI option some programs offer, can show garbled characters. In Excel, save the file again as "CSV UTF-8 (Comma delimited)" and reload it.
Q.Does it work with TSV, semicolon or pipe-delimited files?
A. Yes. Pick comma, tab, semicolon or pipe before you click Load CSV. The tool does not detect the delimiter on its own. The masked file uses the same delimiter as the file you loaded, and tab-delimited input downloads as a .tsv file.
Q.How large a file can I mask?
A. The tool does not set a row limit. The whole file is held in your browser's memory, so very large files can be slow or fail to load on a phone or an older computer. The preview shows the first 15 rows, and the download contains every row.
Q.Is a masked file safe to share publicly?
A. Not automatically. Masking changes only the columns you select. Other columns such as ZIP code, birth date, job title or free-text notes can still point to a real person, and data that can be linked back to someone may still count as personal data under laws such as the GDPR. Review the whole file before you share it.
Your feedback
makes this tool better.
Tell us which features you'd like, what should be fixed, or which new tool you'd like to see. An engineer reads every submission and uses it to guide development.