PHP によって生成された一意の ID を、10,000 を超えるレコードを持つことのないデータベース テーブルで使用したいと考えています。作成時間を表示したり、純粋な数値を使用したりしたくないので、次を使用しています。
sha1(uniqid(mt_rand(), true))
一意の ID にハッシュを使用するのは間違っていますか? すべてのハッシュが衝突につながるわけではありませんか、それとも可能性が非常に低いため、この場合は考慮すべきではありませんか?
さらなるポイント: ハッシュされる文字数が sha1 ハッシュの文字数よりも少ない場合、それは常に一意ではないでしょうか?