Php. Как быстро сгенерировать уникальную строку?

Главная  >>  Backend  >>  Php. Как быстро сгенерировать уникальную строку?

Генерация токенов, случайных строк, уникальных строковых идентификаторов встречается очень часто среди задач. Как ни странно все выполняют ее тоже «уникально».

Часто на форумах или сторонних исходных кодах я видел дпримерно следующую реализацию поставленной задачи:

Да, поставленную задачу такой подход выполняет и с большой долей вероятости результат будет уникальным. Но в php есть более нативный, простой и быстрый метод. Это метод uniqid.

Этот метод генерирует уникальную строку длиной в 13 символов, основываясь на процессорном времени. Например:

Визуально результирующие строки похожи и это связано именно с работой с процессорным временем и разницей во времени вызова. Чтобы увеличить степень уникальности используйте необязательные параметры метода uniqid.

Первый из них — $prefix — строка, добавляемая перед токеном. При работе на разных поддоменах с вероятностью запуска в одну микросекунду можно подстраховаться указанием этого параметра.

Второй — more_entropy — добавление дополнительной энтропии в конец токена. Передача true будет означать увеличение длины строки на 10 символов — с 13 до 23.

Но, в любом случае, как по мне, использование этого метода, даже со всеми дополнительными параметрами является более приемлдемым.