CSV Anonymizer
Anonymize a CSV file in your browser. Choose per column to keep, drop, mask, hash, pseudonymize or generalize personal data, then download the new CSV.
Action per column
Columns whose name looks personal (email, phone, name, address, SSN…) are pre-selected. Check every column: the suggestions only read the headers.
| Column | Example | Action | Setting |
|---|
Preview
Hashes use a random salt created when this page opened: the same value gets the same hash within this file, but the hashes can't be recomputed from the original values. Reloading the page gives new hashes.
How to anonymize a CSV file
- Drop a CSV file in the drop zone, or paste your data under Or paste CSV text and click Use pasted text. The first row must contain the column names.
- Under Action per column, the tool pre-selects an action for each column whose name looks personal: email, phone, name, address, date of birth, social security or social insurance number (SSN, SIN, NAS)… Check every column and change the action where needed.
- Adjust the Setting of a column when it has one: the number of characters kept for Mask, the range width for Generalize, the label for Pseudonym.
- Look at the Preview, which shows the first rows exactly as they will be exported.
- Click Download anonymized CSV. The file keeps the original delimiter (comma, semicolon or tab).
The six actions
| Action | What it does | Example |
|---|---|---|
| Keep | Leaves the column unchanged. | Montréal → Montréal |
| Drop | Removes the whole column from the file. | (column removed) |
| Mask | Replaces every character with * except the last N (4 by default); spaces, dashes, dots and brackets stay. |
514-555-0199 → ***-***-0199 |
| Hash (SHA-256) | Replaces the value with the first 16 hexadecimal digits of a salted SHA-256 hash. | ada@example.com → 3f1c9a0b7e24d816 |
| Pseudonym | Replaces each distinct value with a numbered label, always the same for the same value. | Ada → Person 1 |
| Generalize | Dates become their year, numbers a range of the chosen width, other text its first 3 characters. | 1985-07-14 → 1985, 37 → 30–39, H2X 1Y4 → H2X |
Empty cells stay empty whatever the action, so the export doesn’t invent data.
Hashes, salts and pseudonyms
A plain SHA-256 hash of an email address is not anonymous: anyone with a list of addresses can hash them and find the matches. That’s why this tool adds a random salt, created when the page opens, before hashing. Within one export, the same value always gives the same hash, so you can still count, join or deduplicate records. But nobody, including you, can recompute those hashes later from the original values. Reloading the page creates a new salt and new hashes.
Pseudonyms work the same way: “Person 1” is the first distinct value met in the column, “Person 2” the second, and so on. The table linking names to numbers is never shown or saved.
Anonymized or pseudonymized?
Under privacy laws such as the GDPR or Canada’s privacy acts, data is only anonymous when nobody can reasonably identify a person again, even by combining columns. Hashed and pseudonymized data is usually still personal data: a rare job title, an exact date of birth and a postal code together can point to one person. To reduce that risk, drop the columns you don’t need and generalize the rest (year of birth, age range, first 3 characters of the postal code). This tool helps with the mechanics; it is not a legal assessment.
Privacy
Your file is read and transformed by your browser, on your device. Nothing is uploaded, and the salt never leaves the page.
Frequently asked questions
Which columns are detected as personal data?
Columns whose name contains words such as email, courriel, phone, téléphone, name, nom, prénom, address, adresse, birth, naissance, postal code, SSN, SIN, NAS, passport, IBAN, card or account, and their equivalents in the other site languages (Vorname, teléfono, correo, PLZ, الهاتف…). The detection only reads the column names, so check every column yourself.
Can I get the same hashes next week?
No. The salt is random and is lost when you leave the page, which is what makes the hashes hard to reverse. Process all related files in the same session if you need to join them.
What does Generalize do with a date of birth?
It keeps only the year: 1985-07-14 becomes 1985. Dates written 14/07/1985 or 1985/07/14 are recognized too.
Does the tool change the column order?
No. Columns keep their order and names; only dropped columns disappear.
Is there a size limit?
There is no fixed limit. Files of several megabytes work well; very large files depend on the memory of your device.
Related tools
- CSV Viewer and Editor Open a CSV file in your browser, search, filter and sort it, edit cells, add or delete rows and columns, then export a clean CSV. Private: nothing is uploaded.
- Hash Generator Generate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files of any size, and verify checksums. Everything runs in your browser.
- Test Data Generator Generate realistic fake test data (names, emails, addresses, dates, numbers) in your browser and export it as JSON, CSV or SQL INSERT statements.