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

トリミングは、2 人のユーザーがトリミングされた同じ部分を共有する可能性があるハッシュ衝突のリスクを伴います。

http://en.wikipedia.org/wiki/Collision_(コンピュータ科学)

ハッシュ アルゴリズムは、この可能性を回避するために非常に長い時間を費やしているため、ハッシュされた結果を何らかの方法で変更することはお勧めしません。

于 2012-04-30T08:55:41.760 に答える