Я работаю над созданием уникальных GID и хотел бы получить любое мнение по следующему коду. Идея заключается в том, что она должна выдавать идентификатор, который уникален для определенного IP в течение периода времени в 1 секунду (помогает предотвратить несколько сообщений) и быть как можно короче.Создание уникальных GID
Вот код в PHP:
$gid = base_convert(dechex(str_replace(".", "", $_SERVER['REMOTE_ADDR'])) . dechex(time()), 10, 36);
Это производит идентификаторы, такие как эти:
qdkgzfvim
4ge6gesv
cztme7e4t
45qqcvq
Любое мнение относительно того, будет ли это создавать уникальные идентификаторы? Могут ли быть столкновения? Должен ли я заполнять цифры с помощью 0s?
Вы понимаете, что многие ПК могут использовать один и тот же IP-адрес? –
Первичная фильтрация распространена для веб-служб. REMOTE_ADDR можно заменить идентификатором пользователя в случае зарегистрированного пользователя. Или, если он используется для генерации идентификаторов пользователей, то это предотвратит регистрацию двух человек из одного и того же IP-адреса с той же секунды ... – Dendory
Я больше думаю о системе комментариев или для создания идентификаторов для пользователей и других подобных вещи, в которых вы не ожидаете, что кто-то из вас будет генерировать два элемента за одну секунду. Время() - это простой способ сделать его уникальным навсегда, поскольку он будет продолжать увеличиваться. Мой вопрос больше меняется с int на hex и затем на base36, он лишает уникальности ... – Dendory