Я хочу создать функцию многократного использования, которая будет генерировать случайный ключ с печатными символами ACSII выбранной длины (от 2 до 1000+). Я думаю, что печатные символы ASCII будут 33-126. Они не обязательно должны быть полностью уникальными, просто уникальными, если они сгенерированы на той же миллисекунде (так что uniqid()
не будет работать).
Я думаю, что комбинация chr()
и mt_rand()
может работать.
Это путь, или что-то еще лучший метод?
Изменить: uniqid()
также не будет работать, потому что у него нет параметра длины, это просто то, что дает PHP.
Моя идея. Это то, что я придумал:
function GenerateKey($length = 16) {
$key = '';
for($i = 0; $i < $length; $i ++) {
$key .= chr(mt_rand(33, 126));
}
return $key;
}
Есть ли проблемы с этим?
Другое Редактировать:. Большинство других вопросов касаются генерации пароля. Я хочу более широкий спектр персонажей, и меня не волнует 1
vs l
. Я хочу, чтобы максимальное количество возможных ключей было возможным.
Примечание: сгенерированный ключ необязательно должен быть криптографически защищен.