A hash function deterministically transforms data into a fixed-size hash code. Repeated inputs produce the same code, while small input changes produce very different codes, making the result useful as a pseudonymous identifier. section 8.3.2
Hashing supports pseudonymization when sensitive fields must remain joinable in a warehouse but should stay hidden from analysts and stakeholders. Store the original value separately with restricted access, and retain only the hash in the analytical table. section 8.3.2
Use hashing with these cautions:
- Treat hash similarity as meaningless: similar hashes do not indicate similar original data. section 8.3.2
- Do not assume irreversible protection forever; reassess current information-security practices. section 8.3.2
Hashing email addresses
Python’s hashlib library can apply SHA-256 to each email, create an email_hash column, copy the email and hash into a separate table, and remove the original email from transactions. section 8.3.2
Table 8.1 Examples of anonymized and pseudonymized data
|
Example
|
Anonymized
|
Pseudonymized
|
|---|---|---|
|
Medical research
|
Patients have names, birthdays, and contact information removed from the data warehouse.
|
Patients have names replaced with pseudonyms and a unique identifier that can be tied to their contact information.
|
|
Human resources management
|
Employees have names, social security numbers, and birthdays masked from view.
|
Employees have all identifying information stored in a separate table with restricted access.
|
|
Customer surveys
|
Respondents have no identifying information collected.
|
Respondents can share their emails for future studies, which are only accessible by survey tool admins.
|
Compare anonymization, which removes identifying information, with pseudonymization, which preserves a restricted link to it. section 8.3.2















