gpt4 book ai didi

c# - 6字符短哈希算法

转载 作者:可可西里 更新时间:2023-11-01 08:54:03 24 4
gpt4 key购买 nike

我的目标是为长度为 42 个不区分大小写的字母数字字符的字符串生成一个 6 个字符的短哈希字符串(可能包含字符 [A-Z][a-z][0-9])。唯一性是关键要求。安全性或性能并不是那么重要。

是否有特定的算法可以给出此结果,或者我应该坚持截断 MD5 哈希或 SHA-1 哈希 (Like in this question)?如果是,发生碰撞的概率是多少?

最佳答案

最好的选择是截断众所周知的散列函数(MD5 或 SHA 系列),因为这些算法具有统计上良好的散列值均匀分布(并且还使用完整的散列,而不仅仅是 6 个字符)。

现在一些碰撞概率的计算

- Number of letters in English alphabet: 26- Add capitals: 26- Add numerics: 10--------------In total you get 26 + 26 + 10 = 62 characters. Now you have 6 places, which gives you 62^6 possible combinations.That is 56.800.235.584 ~ 57 billion combinations. This is a space of possible hash values - N.--------------To compute collisions let's use the formula Pcollision = K^2 / 2NWhich is a very rough approximation of collision probability

现在让我们看看一个表中的多个项目的结果表 - K

# items     | Probability of collision---------------------------------------10          |  1.7 * 10^-9100         |  1.7 * 10^-71K          |  1.7 * 10^-510K         |  1.7 * 10^-3100K        |  0.17

这个公式只能用于小的 K,但它表明如果哈希表中有 100K 个条目,您大约有 17% 的冲突机会。

链接

Collision probability

关于c# - 6字符短哈希算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18464517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com