Hash & Anonymise Columns in CSV Files Online
Anonymise or pseudonymise columns in CSV files by replacing values with MD5, SHA-256, or DuckDB hashes — directly in your browser. Useful for GDPR compliance and sharing data without exposing PII — no upload required.
How to hash & Anonymise Columns in CSV files
- Drop your file onto the upload area. The first 200 rows are shown with the row and column count.
- Choose a Hash algorithm: MD5 (32-character hex), SHA-256 (64-character hex) or DuckDB hash (a 64-bit integer written as text).
- Choose an Output mode. Replace swaps each selected column for its hash. Append keeps the original and adds a new column such as email_md5 at the end.
- Tick the columns to hash. Nothing is ticked by default.
- Click Hash Columns, check the preview, then download the file in the same format.
Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.
Worked example
A research team wants to share survey scores with an outside analyst without revealing respondent emails, while still showing which answers came from the same person.
Input (CSV)
respondent_id,email,age_band,nps_score
R-1001,maria.lopez@example.org,35-44,8
R-1002,j.okafor@example.net,25-34,6
R-1003,maria.lopez@example.org,35-44,9
R-1004,,45-54,7Settings
- Hash algorithm: MD5
- Output mode: Replace original column with hash value
- Columns to hash: email
Result
| respondent_id | age_band | nps_score | |
|---|---|---|---|
| R-1001 | 0774b6f01f630684b8643132792f1c48 | 35-44 | 8 |
| R-1002 | 04010e734bdab7aa07d0f05cd693ef81 | 25-34 | 6 |
| R-1003 | 0774b6f01f630684b8643132792f1c48 | 35-44 | 9 |
| R-1004 | NULL | 45-54 | 7 |
These are the real MD5 values of each address. R-1001 and R-1003 get the same hash because they share an email, so the analyst can still group by person without seeing the address. The missing email stays empty, because MD5 and SHA-256 of NULL are NULL. The column keeps its name and position in Replace mode.
Working with CSV files
Every value is converted to text before MD5 or SHA-256 is applied, and in a CSV that text depends on how the column was read. A postcode column containing 01234 may be read as the number 1234, and the hash is then computed from "1234". Anyone hashing the original string "01234" elsewhere gets a different result and cannot join to your file. Cast such columns to text before hashing if leading zeros matter.
Hashes are exact, so "Maria.Lopez@example.org" and "maria.lopez@example.org " (with a trailing space) produce completely different digests. Trim Whitespace and Convert Case to lower on email columns first, or the same person will look like two people after hashing. Empty CSV fields are NULL and stay empty with MD5 and SHA-256. The output CSV has lowercase hex strings, which never need quoting. In Append mode the new column, such as email_sha256, is added after the last original column.
Frequently Asked Questions
Why does my hashed CSV not match hashes made in another system?
Usually the input text differs. Leading zeros may have been dropped when the column was read as a number, or case and spaces differ. Normalise the column and cast it to text before hashing.
What happens to empty cells when hashing a CSV?
With MD5 or SHA-256 they stay empty. With the DuckDB hash option they become a fixed number, the same for every empty cell.
Is hashing the same as anonymisation?
No. It is pseudonymisation. The same input always gives the same hash, and no salt is added. Anyone with a list of likely values, such as known email addresses, can hash them and look for matches. Treat hashed personal data as still personal.
Which algorithm should I choose?
SHA-256 for anything shared outside your team. MD5 is shorter and fine for internal join keys, but it is no longer considered secure. The DuckDB hash option is fast but not a standard algorithm, so other systems cannot reproduce it.
Can I add a salt before hashing?
Not in this tool. Use the SQL Query tool instead, with an expression such as sha256('my-secret-salt' || email). Keep the salt private and use the same one for every file you want to join.
Related Tools
Manage Columns in CSV Files Online
Drop or select specific columns from CSV files directly in your browser. No upload required.
Deduplicate CSV Files Online
Remove duplicate rows from CSV files instantly in your browser. No upload, no server — 100% private.
Count Values in CSV Files Online
Group and count rows by any column in CSV files directly in your browser. Sort by frequency or value to find the most common entries — no upload required.
Hash & Anonymise Columns in Excel Files Online
Anonymise or pseudonymise columns in Excel files by replacing values with MD5, SHA-256, or DuckDB hashes — directly in your browser. Useful for GDPR compliance and sharing data without exposing PII — no upload required.
Hash & Anonymise Columns in Parquet Files Online
Anonymise or pseudonymise columns in Parquet files by replacing values with MD5, SHA-256, or DuckDB hashes — directly in your browser. Useful for GDPR compliance and sharing data without exposing PII — no upload required.
Hash & Anonymise Columns in JSON Files Online
Anonymise or pseudonymise columns in JSON files by replacing values with MD5, SHA-256, or DuckDB hashes — directly in your browser. Useful for GDPR compliance and sharing data without exposing PII — no upload required.
CSV Viewer Online
View and inspect CSV files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Convert CSV to Parquet Online
Convert CSV files to Parquet format directly in your browser. No upload required — your data never leaves your device.