首页 文章

电子邮件的10-char哈希值

提问于
浏览
1

使用10-char哈希识别电子邮件地址的可靠性如何?

MailChimp为电子邮件地址提供10个字符的字母数字ID . 10个字符4位每个给出40位,超过一万亿 . 也许对于像MailChimp这样大小的企业来说,这为一个独特的索引空间提供了合理的空间,并且它们有一个包含所有可能的电子邮件的表,索引为40位数 .

我喜欢使用相同类型的哈希或编码ID来包含在链接中 . 要决定是使用索引还是哈希,需要估计两个有效电子邮件地址导致相同10-char哈希的概率 .

除了原始测试之外,是否有任何关于自定义散列函数评估的提示?

1 回答

  • 1

    你没有明确说出“可靠”是什么意思,但我认为你试图避免碰撞 . 正如wildplasser所说,对于随机标识符,它都是关于生日悖论的,当使用2 ^(n / 2)个ID时,具有2 ^ n个ID的标识符空间中发生冲突的可能性达到50% .

    Birthday Attacks上的维基百科页面有一个很好的表格,说明了各种参数下的碰撞概率;例如,64位和所需的最大碰撞概率为百万分之一,您可以拥有大约600万个标识符 .

    请记住,除了十六进制之外,还有更有效的方法来表示字符中的数据;例如,base64为每4个字符提供3个字节,这意味着10个字符为60位而不是16位 .

相关问题