0

http://www.vidyasocks.com/forums.php?id=1&id=1

正如您在底部看到的那样,我使用哈希作为识别用户的一种方式。10个字符后如何修剪其余部分?

4

3 回答 3

1

使用substr()

echo substr($str, 0, 10);

演示:

>>> $hash = md5('whatever');
>>> echo $hash;
008c5926ca861023c1d2a36653fd88e2
>>> echo substr($hash, 0, 10);
008c5926ca

如果您想在选择哈希时在数据库中执行此操作,可以使用 MySQL 的LEFT函数:

mysql> SELECT LEFT('008c5926ca861023c1d2a36653fd88e2', 10);
+----------------------------------------------+
| LEFT('008c5926ca861023c1d2a36653fd88e2', 10) |
+----------------------------------------------+
| 008c5926ca                                   |
+----------------------------------------------+
1 row in set (0.00 sec)
于 2012-04-30T08:50:16.887 回答
1

使用substr()

$hash = substr($hash,0,10);
于 2012-04-30T08:51:17.727 回答
0

修剪存在哈希冲突的风险,其中两个用户可能共享相同的修剪部分。

http://en.wikipedia.org/wiki/Collision_(computer_science )

散列算法竭尽全力避免这种可能性,因此不建议以任何方式修改散列结果。

于 2012-04-30T08:55:41.760 回答