Генерирует идентификатор на основе времени

# uniqid

(PHP 4, PHP 5, PHP 7, PHP 8)

uniqid — Генерирует идентификатор на основе времени

### Описание

function uniqid(string `$prefix` = "", bool `$more_entropy` = `false`): string

Функция получает идентификатор на основе текущего времени с точностью до микросекунды. Функция добавляет в начало идентификатора префикс `prefix`, а в конец, если требуется, — случайное значение.

Предостережение

Функция не создаёт безопасные для криптографических целей значения, поэтому функцию нельзя использовать в криптографических целях или ожидать возврата значения, которое невозможно угадать.

Безопасные для криптографических целей случайные последовательности создаёт композиция класса Random\Randomizer с движком Random\Engine\Secure. В простых сценариях пользуются функциями random_int() и random_bytes() с удобным и безопасным API-интерфейсом, который поддерживается безопасным для криптографических целей CSPRNG-генератором псевдослучайных чисел операционной системы.

Внимание

Функция не гарантирует уникальность значения, поскольку основывает значение на текущем времени в микросекундах или на текущем времени с добавлением небольшого количества случайных данных, которые функция добавляет в конец идентификатора, когда для параметра `more_entropy` установили значение `true`.

### Список параметров

`prefix`

  Параметр полезен, когда функция генерирует идентификаторы на серии хостов, и появляется риск генерации одинаковых идентификаторов в одну и ту же микросекунду. Иногда одинаковые идентификаторы генерируются даже на одном хосте, если системные часы, например, отстают после настройки времени через NTP-сервер.

  С пустым параметром `prefix` функция вернёт строку длиной 13 символов. Длина строки будет составлять 23 символа, если параметр `more_entropy` равен `true`.

`more_entropy`

  Функция uniqid() добавит через комбинированный линейный конгруэнтный генератор дополнительную энтропию в конец значения возврата, что увеличивает вероятность уникальности результата, если значение параметра равно `true`.

### Возвращаемые значения

Функция возвращает в виде строки уникальный идентификатор на основе метки времени.

Внимание

Функция не гарантирует уникальность значения, которое она возвращает.

### Примеры

Пример #1 Пример использования функции uniqid()

    <?php

    /* Уникальный ID, например: 4b3403665fea6 */
    printf("uniqid(): %s\r\n", uniqid());

    /* Префикс к уникальному ID добавляют следующими
     * способами:
     *
     * $uniqid = $prefix . uniqid();
     * $uniqid = uniqid($prefix);
     */
    printf("uniqid('php_'): %s\r\n", uniqid('php_'));

    /* Можно также активировать параметр more_entropy, который требуется в ряде систем наподобие Cygwin,
     * чтобы увеличить энтропию. Тогда
     * функция uniqid() создаст значение наподобие: 4b340550242239.64159797
     */
    printf("uniqid('', true): %s\r\n", uniqid('', true));

    ?>

### Примечания

> Замечание:

> В среде Cygwin параметру `more_entropy` для работы этой функции требуется установить значение `true`.

### Смотрите также

- random_bytes() - Генерирует криптографически безопасные случайные байты

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open