【发布时间】:2018-05-21 08:00:50
【问题描述】:
我需要匿名化 MySql 数据库中的个人数据。问题是我仍然需要能够将两个人匿名化后联系在一起。
我认为这可以通过散列他们的社会安全号码或电子邮件地址来完成,这导致了我的问题:
当散列两个相等的字符串(s1 和 s1)时,我得到两个散列值(h1 和 h2),我怎么能确定:
1) 哈希值相等 (h1 = h2)
2) 不等于 (s3 = s1) 会产生相同的哈希值
【问题讨论】:
-
散列函数理论上可以发生冲突。在这一点上,使用每个用户的 SSN 作为唯一标识符对我来说似乎已经足够了。为什么需要散列来比较用户?
-
您的要求是加密哈希函数的要求。如果两个相等的字符串没有输出相同的哈希值,那么您的哈希函数就会损坏。同样,如果两个不相等的字符串产生相同的哈希(称为冲突),那么您的哈希函数也会损坏。
-
@Robbie 大多数情况下,我认为您会假设至少有可能发生碰撞,并且只是为这种情况做计划。
-
@TimBiegeleisen 同一个用户(同一个 SSN)可以在同一个数据库表中有多个条目。出于统计原因,即使在 SSN 被匿名化后,我也需要能够连接它们——这就是我考虑散列 SSN 的原因
标签: mysql security hash data-security