Data anonymization

Techniques for hiding personal data when publishing or sharing datasets

Masking

Partial concealment: **** **** **** 1234, o***@gmail.com. Irreversible — original can't be restored. For UI display and reports.

Pseudonymization

Name → 'User #4821' with the mapping table stored separately. Reversible — so GDPR still treats it as PERSONAL data (protect as such).

Generalization

Precise → group: age 34 → '30–39', city → region, date → month. Reduces precision but allows publishing stats safely.

Hashing

One-way function: email → a3f8... For matching records without disclosure. Careful: email hashes are easy to brute-force — add a salt.

Noise

Adding random deviations to values: ±5% to salaries in a sample. Preserves population statistics, destroys individual accuracy.

k-anonymity

Every attribute combination occurs ≥k times — individual can't be singled out. Check before publishing any slice with small groups.

Personal data is anything that can identify a person: name, email, phone, tax ID, geolocation, even a 'age+city+role' combination. Pseudonymization does NOT remove personal-data status — full anonymization needs irreversible techniques (generalization, noise, key removal). This is an orientation guide — details depend on jurisdiction and context.