ホームページ > バックエンド開発 > PHPチュートリアル > 同時実行性が高い場合の PHP での uniqid の重複に関連する問題

同時実行性が高い場合の PHP での uniqid の重複に関連する問題

WBOY
リリース: 2016-06-13 12:03:17
オリジナル
1347 人が閲覧しました

高同時実行下で PHP で繰り返される uniqid の問題

最近のプロジェクトでは、トークン検証の生成に関する問題が発生しています。まず、PHP で uniqid() 関数を使用してランダムな文字列を生成することを検討しますが、この関数はマイクロ秒の時間レベルに基づいているようです。同時実行性が高い場合には、同じ値を生成することが可能です。

解決策 1: uniqid(rand(1,10000))、この関数の最初のパラメーターは、生成される数値のプレフィックスとして使用できるため、生成される数値の重複を大幅に減らすことができます。レート。しかし、重複の可能性は依然として存在します

解決策 2: md5(uniqid())、md5() 関数を使用すると、完全に一意の値を生成できます

1Franxiedao53 分前
私も以前バックエンドで作業していたときにこの問題を発見しました。生成時の繰り返し率が非常に高かったです。短時間で 20% に達することもありました。そのため、それを生成する独自のメソッドを作成し、8 桁を生成するなど、配列の文字をランダムに生成しました。この方法では、繰り返しの可能性が大幅に低くなり、より優れています。 PHP に付属しているものよりも、このメソッドは罠であると感じます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート