Я ищу способ, в частности, в PHP, который гарантированно будет всегда иметь уникальный ключ.
Я сделал следующее:
strtolower(substr(crypt(time()), 0, 7));
Но я обнаружил, что время от времени я получаю дубликат ключа (редко, но часто достаточно).
Я также думал о том, чтобы делать:
strtolower(substr(crypt(uniqid(rand(), true)), 0, 7));
Но, согласно сайту PHP, uniqid() может, если uniqid() вызывается дважды в одну и ту же микросекунду, он может генерировать тот же ключ. Я думаю, что добавление rand() было бы редко, но все же возможно.
После строк, упомянутых выше, я также удаляю символы, такие как L и O, поэтому он менее запутан для пользователя. Возможно, это часть причины дубликатов, но все же необходимо.
Один из вариантов, о котором я подумал, - создание веб-сайта, который будет генерировать ключ, сохраняя его в базе данных, обеспечивая его полностью уникальное.
Любые другие мысли? Есть ли там какие-то веб-сайты, которые уже делают это, которые имеют какой-то API или просто возвращают ключ. Я нашел http://userident.com, но я не уверен, что ключи будут полностью уникальными.
Это нужно запускать в фоновом режиме без ввода пользователем.