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