Skip to content

v1.0.0-beta — first public release

Pre-release
Pre-release

Choose a tag to compare

@Alvsok Alvsok released this 20 Aug 17:49
· 5 commits to main since this release

Load one spreadsheet, tick the columns to hide, press one button. Out come two files: masked.zip for whoever analyzes your data, and a key that stays with you.

Live at https://anonymizer.alsok.org/

What it does

  • Masks .xlsx, .csv and .tsv entirely in the browser, on Pyodide. No backend, no CDN, no uploads.
  • Deterministic tokens (CUST-000007) instead of realistic fake values, so a real value that slipped through is obvious at a glance rather than camouflaged.
  • Numbering is shuffled and seeded from the key: the token number does not leak who came first or who is largest, and a second run with the same key reproduces the same tokens.
  • The key is mapping.KEEP-PRIVATE.secretmap — deliberately not .json, so it does not open on a double click in Excel. It never goes into the archive with the masked file.
  • Values already in the key are also replaced where they appear inside free text, not only in the columns they came from.
  • Works offline after the first load.

What it does not do

This is pseudonymization, not anonymization. Amounts, dates and the number of distinct values stay real — the analyst has to be able to work with the file. See SECURITY.md for the full list of what is and is not a vulnerability.

Other limits: one file per run, Excel formulas are read as values, restoring real values is not part of this page yet, and nothing in js/ has automated tests.

Full notes in CHANGELOG.md.