麻烦PHP大佬看下我这个求唯一字符串的函数?
function xx($str){
return substr(md5($str),8,16);
}
echo xx('2_1');
echo xx('2_2');
echo xx('2_3');
echo xx('2_4');
echo xx('2_5');
...
每次调用这个函数,传递的 $str 都是不同的,想问下是否可能会返回有重复的结果呢?
回复
1个回答
test
2024-06-25
MD5算法的输出结果是固定长度的字符串,当输入的消息长度不相同时,不同的输入会产生不同的哈希值。然而,当输入的消息非常庞大时,很难保证哈希值的唯一性。这就意味着,MD5的哈希值总的来说是有可能重复的,然后你还只是截取一段数据,那就更有可能出现重复了,唯一算法比较出名之一是雪花算法,你可以去了解了解
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容