首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >散列两个eual字符串会产生相同的散列值吗?

问散列两个eual字符串会产生相同的散列值吗?
EN

Stack Overflow用户
提问于 2017-12-07 09:02:28
回答 2查看 1.4K关注 0票数 0

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

我认为这可以通过散列他们的社保号码或电子邮件地址来完成,这就引出了我的问题:

当散列两个相等的字符串(s1和s1)时,我得到两个哈希值(h1和h2),如何确定:

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

2) no不相等(s3 = s1)将产生相同的哈希值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-07 09:08:46

1)相同的字符串总是产生相同的哈希值。

2)与数据量相比,如果选择较小的哈希长度,理论上不同的字符串可能产生相同的散列。但是使用默认的哈希长度(32或40)不会导致这样的问题。

票数 2
EN

Stack Overflow用户

发布于 2017-12-07 09:10:45

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

2)两个不同的字符串可以具有相同的哈希值。这就是所谓的“拼贴”。概率取决于所使用的哈希函数和结果哈希的长度。例如,对于MD5,有用于查找冲突的网站和表,这是非常有趣的。

我不知道你把人联系在一起是什么意思,或者你的要求是什么,所以我帮不了你。但你可以把两个人和他们的身份证联系起来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47691224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档