Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как осуществить генерирование строки активации?
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Как осуществить генерирование строки активации?

Страниц (1): [1]
 

1. prog90 - 14 Августа, 2011 - 21:32:16 - перейти к сообщению
Нашел в интернете такую функцию:
function generatePassword($length = 8){
$chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ23456789';
$numChars = strlen($chars);
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $string;
}
Хорошо ли она будет работать или есть стандартные функции в php для этого? Например, не сможет ли кто-то активировать аккаунт после регистрации, подобрав строку? Усилит ли уникальность кода, если еще применить md5 к cтроке, которую возвращает функция выше?
2. OrmaJever - 14 Августа, 2011 - 21:42:16 - перейти к сообщению
стандартных нет, такой вариант будет работать нормально только лутше rand заменить на mt_rand()
3. White - 14 Августа, 2011 - 21:43:53 - перейти к сообщению
использую для этого такую функцию
PHP:
скопировать код в буфер обмена
  1. function generate($length) {
  2.         $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUWXYZ';
  3.         for ($i=0; $i<$length; $i++) {
  4.                 $result .= $characters[mt_rand(0, strlen($characters))];
  5.         }
  6.         return $result;
  7. }
4. LIME - 14 Августа, 2011 - 21:52:49 - перейти к сообщению
White ваш вариант принципиально не отличается
а вот strlen($characters) из цикла всетаки вынести бы неплохо ))
5. White - 14 Августа, 2011 - 21:54:08 - перейти к сообщению
LIME да наверное, это к слову про mt_rand()
6. LIME - 14 Августа, 2011 - 21:55:26 - перейти к сообщению
хотя длина строки в пхп хранится а не вычисляется так что не особо ускорит
7. prog90 - 15 Августа, 2011 - 08:15:27 - перейти к сообщению
Спасибо за ответы.
Помогло

 

Powered by ExBB FM 1.0 RC1