Tabel anonimiseren: CSV, TSV en XLSX

Tabel anonimiseren betekent in de praktijk: een register, een export of een uitdraai opschonen voordat je hem deelt. Deze tool leest CSV-, TSV- en XLSX-bestanden in je browser, herkent in elke kolom wat erin staat, en vervangt of schermt de gevoelige waarden af. Je ziet het resultaat eerst in een voorbeeld en downloadt daarna een nieuw bestand. Er is geen server die je bestand ontvangt.

Tabel anonimiseren zonder upload

Voor een PDF geldt de belofte dat het document je apparaat niet verlaat. Voor een tabel geldt precies dezelfde belofte, om dezelfde reden: het bestand wordt in je browser gelezen, verwerkt en geschreven. De beveiligingsregel van deze site staat verbindingen naar andere servers niet toe, en de verwerking van de tabel valt onder diezelfde regel. De enige uitzondering is wat je zelf typt in het contactformulier; dat vertrekt pas als je op de knop drukt.

Welke bestanden de tool wel en niet leest

De tool leest CSV, TSV en XLSX. Oudere indelingen en werkboeken met macro's weigert hij met een melding: bestanden met de extensie xls, xlsb of xlsm worden niet geopend. Dat is geen ongemak maar een keuze. Van een werkboek dat macro's kan bevatten kan de tool niet nagaan wat er precies in staat, en een half gelezen werkboek levert een uitvoer op die je niet kunt narekenen. Sla zo'n bestand eerst op als xlsx of als CSV.

10 manieren om een kolom te behandelen

Je stelt per kolom in wat er met de waarden gebeurt. Er zijn 10 mogelijkheden:

Waarom een BSN standaard een code wordt

Voor een BSN, een IBAN, een KVK-nummer, een patiëntnummer, een verzekerdennummer, een zaaknummer en een telefoonnummer kiest de tool standaard voor een code, niet voor een sterretje dat een paar tekens laat staan. De reden is dat zulke nummers weinig mogelijkheden hebben. Een BSN heeft negen cijfers en een vaste cijfercontrole. Laat je er twee van staan, dan blijven er ongeveer tien miljoen kandidaten over. Dat is niet weg te strepen met een blok: het is een puzzel die iemand met een script zo oplost. Voor vrije tekst, zoals een naam of een adres, is een sterretje in het midden wel een redelijke keuze, want daar is geen klein rijtje mogelijkheden om te proberen.

Een code is gepseudonimiseerd, niet anoniem

Dat onderscheid is belangrijk en de tool verwoordt het liever precies. Een code is gepseudonimiseerd: de waarde is vervangen door een code van 16 tekens die met een geheime sleutel is berekend, en zonder die sleutel is de code niet terug te rekenen. Maar wie de sleutel wel heeft, vindt een kort nummer als een BSN razendsnel terug, omdat er zo weinig mogelijkheden zijn om te proberen. De sleutel blijft daarom in je browser, wordt nergens bewaard en staat niet in de uitvoer. Dit is pseudonimisering, geen anonimisering: het verbergt de waarde, het maakt haar niet onvindbaar voor iemand met de sleutel.

De sleutel: per sessie, of je eigen wachtwoord

Standaard maakt de tool bij elke sessie een nieuwe sleutel, in je browser. Verwerk je hetzelfde bestand later opnieuw, dan krijgt het andere codes. Wil je dezelfde waarden later opnieuw kunnen krijgen, geef dan een eigen wachtwoord op. De sleutel wordt dan uit dat wachtwoord en de sessiesleutel samen berekend, en de bescherming hangt vanaf dat moment af van hoe sterk je wachtwoord is. De tool zegt dat er ook bij, zodat je die afweging zelf kunt maken.

Drie manieren om waarden te koppelen

De drie keuzes die een code of een volgnummer opleveren, doen niet hetzelfde, en dat verschil is de moeite waard om te kennen.

Het voorbeeld is het echte werk

De eerste 10 regels die je in het voorbeeld ziet, komen uit precies dezelfde berekening als het bestand dat je downloadt. De tool rekent het voorbeeld niet na in een tweede programma, dus het voorbeeld kan niet iets anders laten zien dan de uitvoer. Wat je controleert, is wat je krijgt.

De uitvoer is gegevens, geen kopie van je werkboek

Dit is het grootste verschil met "opslaan als" in een spreadsheetprogramma. De tool bouwt een nieuw, zo klein mogelijk bestand op met alleen het werkblad dat je hebt ingesteld. Alles wat er verder in het origineel zat, gaat niet mee: opmaak, kleuren, lettertypen, getalnotaties, voorwaardelijke opmaak, formules, afbeeldingen, grafieken, macro's, andere werkbladen en verborgen werkbladen. Dat is expres. Een verborgen werkblad met daarin de onbewerkte gegevens is het tabel-equivalent van een zwarte rechthoek over leesbare tekst: het lijkt verborgen, maar het gaat gewoon mee. Van een formule schrijft de tool de uitkomst als gewone tekst.

Formules in een CSV

Een CSV-bestand is bedoeld om in een spreadsheet te openen, en een veld dat begint met een van de tekens waarmee een formule begint, zoals =, +, - of @, zou daar uitgevoerd kunnen worden. De tool zet er een apostrof voor, zodat het als tekst wordt gelezen. De uitvoer is UTF-8 met een merkteken vooraan, zodat Excel-NL de accenten bij een dubbelklik goed leest. Dit is de enige plek waar de tool tekst aanpast die je niet hebt gemarkeerd, en het staat standaard aan.

Grote bestanden: rij voor rij, met een grens

De tool leest en schrijft rij voor rij. Er wordt nooit een volledige tabel in het geheugen gezet: op elk moment is één rij aan de beurt, naast het bestand dat je aanvoerde en het bestand dat eruit komt. Boven de 50 MiB waarschuwt de tool dat het verwerken traag kan worden; boven de 250 MiB weigert hij het bestand, nog voordat het wordt ingelezen. Bij een XLSX-bestand komt daar een tweede grens bij: de lijst met alle unieke teksten uit het werkboek wordt in het geheugen gehouden. Een werkboek dat daardoor te veel geheugen zou vragen, wordt vooraf geweigerd: de tool leest de inhoudsopgave van het bestand en ziet dat aankomen voordat er iets wordt ingelezen. Sla zo'n werkboek op als CSV; een CSV- of TSV-bestand heeft dit probleem niet.

De profielen

De basistabel is altijd van toepassing. Daarnaast kent de tool 3 profielen die de standaardkeuze voor één kolom aanpassen:

Omdat een profiel precies één kolom aanpast, verschijnt het alleen als je bestand zo'n kolom heeft: zonder zaak- of patiëntnummers blijft de profielkeuze weg, want er valt niets te kiezen. Een profiel is een beginpunt, geen beslissing: je kunt elke kolom daarna nog aanpassen.

Wat de tool niet doet

Zo ga je te werk

  1. Sleep je bestand in het venster of kies het. De tool leest het en toont de opbouw.
  2. Controleer het scheidingsteken, de kopregel en het profiel, en bij meerdere werkbladen welk werkblad je verwerkt.
  3. Stel per kolom in wat er met de waarden gebeurt. Het voorbeeld eronder loopt mee.
  4. Download het nieuwe bestand. Het origineel blijft ongewijzigd.

Heb je een PDF in plaats van een tabel? Gebruik dan de PDF-tool op de beginpagina. Die werkt met dezelfde belofte: je bestand blijft op je eigen apparaat. En heb je een Word-document in plaats van een tabel? Lees dan hoe je een Word-document anonimiseert.

Veelgestelde vragen

Wordt mijn tabel geüpload?

Nee. De tool leest het bestand in je browser en schrijft het nieuwe bestand ook daar. Er is geen server die het ontvangt, en de beveiligingsregel van deze site staat verbindingen naar andere servers niet toe. De enige uitzondering is wat je zelf typt in het contactformulier.

Waarom worden xls- en xlsm-bestanden geweigerd?

De tool weigert bestanden met de extensie xls, xlsb of xlsm, met een melding. Het gaat om een oudere indeling of om een werkboek dat macro's kan bevatten. De tool kan dan niet nagaan wat er precies in het bestand staat, en een half gelezen werkboek levert een uitvoer op die je niet kunt narekenen. Sla het bestand eerst op als xlsx of als CSV.

Wat betekent het als een BSN een code wordt?

De waarde wordt vervangen door een code die met een geheime sleutel is berekend. Zonder die sleutel is de code niet terug te rekenen. Let op wat dat wel en niet betekent: dit is pseudonimisering, geen anonimisering. Wie de sleutel heeft, vindt een kort nummer als een BSN razendsnel terug. De sleutel blijft daarom in je browser en wordt niet bewaard.

Krijg ik hetzelfde bestand als ik het opnieuw verwerk?

De waarden wel, het bestand niet. Met dezelfde sleutel krijgt dezelfde waarde dezelfde code, dus de cellen komen overeen. Een XLSX-bestand is nooit precies hetzelfde bestand, omdat het bij elke keer nieuwe interne nummers krijgt. Met de sleutel van deze sessie lukt opnieuw verwerken niet: die is na de sessie verdwenen. Geef een eigen wachtwoord op als je later hetzelfde resultaat wilt.

Blijven de opmaak en de formules van mijn werkboek bewaard?

Nee. De uitvoer is een gegevensbestand, geen kopie van je werkboek. Kleuren, lettertypen, getalnotaties, voorwaardelijke opmaak, formules, afbeeldingen, grafieken en macro's gaan niet mee. Van een formule wordt de uitkomst als gewone tekst geschreven. Wil je de opmaak bewaren, dan heb je het originele bestand nodig, en dat is juist het bestand dat je niet hoort te publiceren.

Wat gebeurt er met de werkbladen die ik niet instel?

Die komen niet in de uitvoer. De tool schrijft alleen het werkblad dat je hebt gekozen. Andere werkbladen, ook verborgen werkbladen, worden niet overgezet. Dat is expres: een verborgen werkblad met daarin de onbewerkte gegevens zou anders ongezien met je publicatie meegaan.

Is er een limiet aan de grootte van mijn tabel?

Boven de 50 MiB waarschuwt de tool dat het verwerken traag kan worden. Boven de 250 MiB weigert hij het bestand, nog voordat het wordt ingelezen. Bij een XLSX-bestand komt daar een tweede grens bij: de lijst met alle unieke teksten uit het werkboek wordt in het geheugen gehouden. Een CSV- of TSV-bestand heeft dat probleem niet en wordt rij voor rij verwerkt.

Probeer het met je eigen bestand

Open de tool

Je bestand blijft op je eigen apparaat. Er wordt niets verstuurd en niets opgeslagen.

Verder lezen