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.