http://www.vidyasocks.com/forums.php?id=1&id=1
正如您在底部所看到的,我使用哈希作为识别用户的方法。如何在10个字符后剪掉其余部分?
答案 0 :(得分: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)
答案 1 :(得分:1)
使用substr()
:
$hash = substr($hash,0,10);
答案 2 :(得分:0)
修剪会产生哈希冲突的风险,其中两个用户可能共享相同的修剪部分。
http://en.wikipedia.org/wiki/Collision_(computer_science)
散列算法需要很长时间以避免这种可能性,因此不建议以任何方式修改散列结果。