PHP: Как генерировать случайную, уникальную, алфавитно-цифровую строку?

Контейнеры STL хранят копии содержавших объектов. Когда auto_ptr копируется, он устанавливает старый ptr в NULL. Много методов контейнера повреждаются этим поведением.

358
задан hakre 15 April 2012 в 01:15
поделиться

2 ответа

Уведомление о безопасности : это решение не следует использовать в ситуациях, когда качество случайности может повлиять на безопасность приложения. В частности, rand () и uniqid () не являются криптографически безопасными генераторами случайных чисел . См. ответ Скотта для получения безопасной альтернативы.

Если вам не нужно, чтобы он был абсолютно уникальным с течением времени:

md5 (uniqid (rand (), true))

В противном случае (при условии вы уже определили уникальный логин для своего пользователя):

md5(uniqid($your_user_login, true))
286
ответ дан 23 November 2019 в 00:19
поделиться
  1. Создать случайное число, используя твое любимое случайное число генератор
  2. Умножить и разделить чтобы получить число, совпадающее с числом символов в алфавите кода
  3. Получите элемент с этим индексом в ваш кодовый алфавит.
  4. Повторяйте с 1), пока не получите длину, хотите

например (в псевдокоде)

int myInt = random(0, numcharacters)
char[] codealphabet = 'ABCDEF12345'
char random = codealphabet[i]
repeat until long enough
7
ответ дан 23 November 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: