sql >> データベース >  >> RDS >> Mysql

PHP-uniqid(、true)とuniqid()+ mt_rand()

    より多くのエントロピーを使用せずに、 uniqid 基本的に次のことを行います( のソースを参照) uniqid.c ):

    $time = explode(' ', microtime(false));
    return sprintf('%s%08x%05x', $prefix, $time[1], $time[0] * 1000000);
    

    したがって、基本的に現在の時刻をマイクロ秒単位で取得し、それらを16進表現に変換して、プレフィックスに追加します。これはすでに一意の値を提供します。

    しかし、値は完全にランダムではありません。よりランダムな値を取得するには、2番目のパラメーター more_entropy を設定して、エントロピーを追加する必要があります。 。その場合、PHPの内部線形合同法 php_combined_lcg lgc.c<のソースを参照してください。 / em> )は、最後に付加される疑似乱数を生成するために使用され、約30ビットの追加エントロピーを追加して、それらをよりランダムにします。



    1. MySQL例外-データ読み取り中に致命的なエラーが発生しました

    2. SQL Server:like?で使用されるインデックス列

    3. レコードを挿入し、単一のSqlCommandを使用して新しく作成されたIDを返す方法は?

    4. 初心者向けのSQLNotEqual To()演算子