高同時実行下で PHP で繰り返される uniqid の問題
最近のプロジェクトでは、トークン検証の生成に関する問題が発生しています。まず、PHP で uniqid() 関数を使用してランダムな文字列を生成することを検討しますが、この関数はマイクロ秒の時間レベルに基づいているようです。同時実行性が高い場合には、同じ値を生成することが可能です。
解決策 1: uniqid(rand(1,10000))、この関数の最初のパラメーターは、生成される数値のプレフィックスとして使用できるため、生成される数値の重複を大幅に減らすことができます。レート。しかし、重複の可能性は依然として存在します
解決策 2: md5(uniqid())、md5() 関数を使用すると、完全に一意の値を生成できます