1. PHP / Говнокод #4381

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    function randomPassword($length = 8, $seed = '') {
    	$password = "";
    	$possible = "0123456789";
    	$i = 0;
    	mt_srand(($seed == '') ? rand() : $seed);
    	while ($i < $length) {
    		$char = substr($possible, mt_rand(0, strlen($possible) - 1), 1);
    		if (!strstr($password, $char)) {
    			$password .= $char;
    			$i++;
    		}
    	}
    	return $password;
    }

    думаю пора создавать отдельный радел на сайте посвящённый высерам призванным генерировать пароли

    Запостил: DrFreez, 18 Октября 2010

    Комментарии (7) RSS

    • ну почему каждый, делающий хомяк (или "крутой" проект, но выполненный на уровне хомяка), считает своим долгом изобрести велосипед свой генератор паролей?

      причем, в данном случае, при существующем $possible = "0123456789"; достаточно было return mt_rand(11111111, 99999999);
      ну в упор не видят, что сложность такого пароля низка, и брутфорс тут был бы весьма эффективен
      Ответить
      • не вижу причин для патетики, если бы не строка 8 (см. ниже) сложность была бы 10^8, пусть проверка в LAN ~10 мс, итого брут ~11 сут, что вполне приемлемо. а чарсет можно в любой момент расширить (и вообще - параметром его!)
        Ответить
    • Ибо все считают что придумают свой мега алгоритм генерации паролей, но пока не придумали, сделают заглушку, а внутри напишут что то типа кода приведенного выше ))
      Ответить
    • > mt_srand( rand() )

      ЛОЛОЛОЛ
      Ответить
      • function random_pass(){ /* НЕ ЗАПУСКАТЬ!!! */
        return rand(random_pass());
        }
        Lim n->inf (random_pass()) = 0
        Ответить
        • Не, как то плохо получилось, ясно что в бесконечной рекурсии сидит функция,но хотел как то по другому.
          Но думаю суть ясна.
          Ответить
    • в 8 строке обезьянка сама себя перехитрила, поскольку (если я правильно помню тервер) различных паролей будет ровно 10!/(10-8)! и святой Мерсенн ей не поможет
      Ответить

    Добавить комментарий