0

我需要匿名化 MySql 数据库中的个人数据。问题是我仍然需要能够在匿名后将两个人联系在一起。

我认为这可以通过散列他们的社会安全号码或电子邮件地址来完成,这导致了我的问题:

当散列两个相等的字符串(s1 和 s1)时,我得到两个散列值(h1 和 h2),我怎么能确定:

1) 哈希值相等 (h1 = h2)

2) no not equal (s3 = s1) 会产生相同的哈希值

4

2 回答 2

2

1)相同的字符串将始终产生相同的哈希值
2)如果您选择与数据量相比较小的哈希长度,理论上不同的字符串可能会产生相同的哈希。但使用默认哈希长度(32 或 40)不会导致此类问题。

于 2017-12-07T09:08:46.073 回答
1

1) (h1 = h2) 对于每个定义的相等字符串(s1 和 s2)总是正确的,当使用正确的散列函数时。

2)两个不同的字符串可以有相同的哈希值。这被称为“碰撞”。概率取决于使用的散列函数和生成的散列的长度。例如,对于 MD5,有用于查找冲突的网站和表格,这非常有趣。

我不确定您将人们联系在一起是什么意思或您的要求是什么,所以我无法帮助您。但是你可以用他们的 id 把两个人联系起来。

于 2017-12-07T09:10:45.533 回答