http://www.vidyasocks.com/forums.php?id=1&id=1
下部にあるように、ユーザーを識別する方法としてハッシュを使用しています。10文字後に残りを削除するにはどうすればよいですか?
http://www.vidyasocks.com/forums.php?id=1&id=1
下部にあるように、ユーザーを識別する方法としてハッシュを使用しています。10文字後に残りを削除するにはどうすればよいですか?
使用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)
使用substr()
:
$hash = substr($hash,0,10);
トリミングは、2 人のユーザーがトリミングされた同じ部分を共有する可能性があるハッシュ衝突のリスクを伴います。
http://en.wikipedia.org/wiki/Collision_(コンピュータ科学)
ハッシュ アルゴリズムは、この可能性を回避するために非常に長い時間を費やしているため、ハッシュされた結果を何らかの方法で変更することはお勧めしません。