修剪哈希密码(用于用户识别)

时间:2012-04-30 08:49:40

标签: php sql hash

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

正如您在底部所看到的,我使用哈希作为识别用户的方法。如何在10个字符后剪掉其余部分?

3 个答案:

答案 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

散列算法需要很长时间以避免这种可能性,因此不建议以任何方式修改散列结果。