Utilia

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.

How to anonymize a CSV file

  1. 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.
  2. 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.
  3. 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.
  4. Look at the Preview, which shows the first rows exactly as they will be exported.
  5. 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.