Я искал способ, особенно в 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, но я не уверен, будут ли ключи полностью уникальными.
Это должно выполняться в фоновом режиме без какого-либо ввода пользователя.