Data Anonymization Workbench

Data Anonymization Workbench

Choose a policy for every column, preview the processed table and inspect selected combination frequencies.

Processing stays in this page’s memory. The example is invented data, not a real person’s record.

1. Read a CSV table

The first record contains headers. Outer header whitespace is trimmed; empty or duplicate headers are rejected. Quoted commas, line breaks, doubled quotes and an initial BOM are supported. Data cells remain strings. Only completely blank records are skipped.

Limits: 1 MiB UTF-8, 5,000 rows, 32 columns, 100,000 cells, 4,096 UTF-16 units per cell and 120 per header. Parsing is bounded and synchronous; transformation yields every 128 rows.

Paste CSV or load the invented example.

Comments & questions

Data Anonymization Workbench

Prepare a working copy of a table using an explicit policy for each column. This workbench combines removal, fixed and partial masking, consistent session pseudonyms and a before/after frequency check for up to four selected quasi-identifiers. It shows what changed without placing original values or headers in the policy report. The processed table itself can retain values you deliberately keep.

Key features

  • Five explicit column policies with a masked default
  • Stable exact-value pseudonyms within a column and memory session
  • Fixed-marker partial masking by Unicode code points
  • Before/after combination frequencies for up to four chosen columns
  • Numeric policy audit without source values, headers or mapping dictionaries
  • Complete processed CSV and a separate JSON policy report

How to use

  1. Paste CSV or select a UTF-8 file and choose its delimiter.
  2. Read columns; all columns initially use a fixed mask.
  3. Choose each column policy and optionally select up to four quasi-identifiers.
  4. Set the small-group threshold and apply the policies.
  5. Review the processed table, numeric audit and frequency limits before downloading the needed files.

Use cases

  • Create a masked sample export for a software bug report
  • Keep repeated customer labels consistent within a local review session
  • Inspect how postcode masking changes selected group frequencies
  • Record processing decisions without repeating original identifiers in the report

Frequently asked questions

Does the result guarantee anonymity?

No. Masking and pseudonyms do not prove that a table cannot be linked to outside information. The frequency check covers only the columns you selected in this table. It does not discover all identifiers, estimate an individual’s identification probability or decide legal compliance.

Are pseudonyms stable after changing the input?

Within the page session, the same exact value under the same exact column header receives the same token. Header and value comparisons do not trim, case-fold or normalize Unicode. Columns have separate mappings. Clear all, the example button, Reset pseudonyms or leaving the page start new mappings; mappings are never exported.

What does partial masking preserve?

It keeps the selected number of Unicode code points at the beginning and end and inserts a fixed three-dot marker. A value too short to hide at least one code point becomes [MASKED]. Code points are not grapheme clusters, so a combined emoji or accented letter may be split. Empty-string preservation is a separate checkbox; spaces are data.

How are small groups counted?

Rows with identical exact tuples in the chosen columns form a group, including empty cells. The report gives group sizes, singleton rows and rows in groups strictly smaller than your threshold k. Pseudonyms alone preserve equality and therefore do not enlarge groups. If every selected column is removed, the processed check is not evaluable rather than a successful anonymity result.

What is in the two downloads?

Processed CSV keeps the original retained column names and may include source values from Keep or Partial mask. Potential spreadsheet formulas receive a leading apostrophe in CSV only. The separate JSON policy report contains column ordinals, policies and numeric counts; it excludes names, original cell values, tuple values and mapping dictionaries. Neither preview pagination nor filtering truncates exports.

What are the limits and cancellation rules?

Input is limited to 1 MiB UTF-8, 5,000 data rows, 32 columns and 100,000 cells. Up to four quasi-identifiers and k from 2 to 20 are supported. Session mappings stop at 100,000 values, 2,000,000 stored UTF-16 units or 64 headers. Processing yields every 128 rows. Cancellation or input changes discard results, and cancelled mappings are not committed.

Privacy

CSV text, selected file contents, policies, mappings and results stay in this page’s memory. This tool does not put them into URLs, browser storage, analytics events or upload requests. Clear all and leaving the page discard its input and mapping state; Reset pseudonyms discards mappings while keeping the current input. Downloaded files are separate copies that you control.

Related Tools

Find & ReplaceJSON ↔ CSVHash GeneratorWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderJSON FormatterURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →