我需要在我们的MySql数据库中对个人数据进行匿名化。问题是,在两个人匿名之后,我仍然需要能够将他们联系在一起。
我认为这可以通过散列他们的社保号码或电子邮件地址来完成,这就引出了我的问题:
当散列两个相等的字符串(s1和s1)时,我得到两个哈希值(h1和h2),如何确定:
1)哈希值相等(h1 = h2)
2) no不相等(s3 = s1)将产生相同的哈希值。
发布于 2017-12-07 09:08:46
1)相同的字符串总是产生相同的哈希值。
2)与数据量相比,如果选择较小的哈希长度,理论上不同的字符串可能产生相同的散列。但是使用默认的哈希长度(32或40)不会导致这样的问题。
发布于 2017-12-07 09:10:45
当使用正确的哈希函数时,(h1 = h2)对于每个定义的相等字符串(s1和s2)总是正确的。
2)两个不同的字符串可以具有相同的哈希值。这就是所谓的“拼贴”。概率取决于所使用的哈希函数和结果哈希的长度。例如,对于MD5,有用于查找冲突的网站和表,这是非常有趣的。
我不知道你把人联系在一起是什么意思,或者你的要求是什么,所以我帮不了你。但你可以把两个人和他们的身份证联系起来。
https://stackoverflow.com/questions/47691224
复制相似问题