]> granicus.if.org Git - php/commitdiff
Revert "Fix bug #47890 #73215 uniqid() should use better random source"
authorJoe Watkins <krakjoe@php.net>
Tue, 18 Oct 2016 10:30:19 +0000 (11:30 +0100)
committerJoe Watkins <krakjoe@php.net>
Tue, 18 Oct 2016 10:30:19 +0000 (11:30 +0100)
This reverts commit 48f1a17886d874dc90867c669481804de90509e8.

ext/standard/uniqid.c

index 207cf01cb86b6dd88d85000d994d191be20e920e..f429e6d4a0e8e414687b82a0536ebf1be7de8aa4 100644 (file)
 #include <sys/time.h>
 #endif
 
-#include "php_random.h"
+#include "php_lcg.h"
 #include "uniqid.h"
 
-#define PHP_UNIQID_ENTROPY_LEN 10
-
 /* {{{ proto string uniqid([string prefix [, bool more_entropy]])
    Generates a unique ID */
 #ifdef HAVE_GETTIMEOFDAY
@@ -79,22 +77,7 @@ PHP_FUNCTION(uniqid)
         * digits for usecs.
         */
        if (more_entropy) {
-               int i;
-               unsigned char c, entropy[PHP_UNIQID_ENTROPY_LEN+1];
-
-               for(i = 0; i < PHP_UNIQID_ENTROPY_LEN;) {
-                       php_random_bytes_throw(&c, sizeof(c));
-                       /* Avoid modulo bias */
-                       if (c > 249) {
-                               continue;
-                       }
-                       entropy[i] = c % 10 + '0';
-                       i++;
-               }
-               /* Set . for compatibility */
-               entropy[1] = '.';
-               entropy[PHP_UNIQID_ENTROPY_LEN] = '\0';
-               uniqid = strpprintf(0, "%s%08x%05x%s", prefix, sec, usec, entropy);
+               uniqid = strpprintf(0, "%s%08x%05x%.8F", prefix, sec, usec, php_combined_lcg() * 10);
        } else {
                uniqid = strpprintf(0, "%s%08x%05x", prefix, sec, usec);
        }