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

    +158.2

    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
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    function pass_gen() //Пароль генерируется восьмисимвольный, символы не повторяются
    {
    	$i = 0;
    	$pass = '';
    	$new_symbol = '';
    
    	// символы a-z, A-Z, 0-9, _-=![]{}
    	$symbols = 'abc1d=efg2h!ijklm3[nopqr4stuvw5]xyz_ABC6DEFG{7HIJKL8MNOPQ}R9STUVWXYZ-';
    	$count = strlen($symbols) - 1;
    	
    	while ($i <= 20)
    	{
    		$new_symbol = substr($symbols, rand(0, $count), 1);
    		
    		if (strpos($pass, $new_symbol) === false) 
    		{
    			$pass .= $new_symbol;
    			$i++;
    		}
    	}
    	
    	$pass = substr($pass, 5, 8);
    
    	return $pass;
    }

    "лучшая случайность" и тд)

    Запостил: litrumb, 13 Декабря 2009

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

    • А что сдесь не так?
      Ответить
      • например зачем генерить 20-ти символьную строку, а потом из нее вырезать 8 символов?
        Ответить
    • $str = 'abc1d=efg2h!ijklm3[nopqr4stuvw5]xyz_ABC6DEFG{7HIJKL8MNOPQ}R9STUVWXYZ-';
      $pass = str_shuffle(substr($str, 0, $pass_len));
      Ответить
      • вот так вот, прошу прощения
        $str = 'abc1d=efg2h!ijklm3[nopqr4stuvw5]xyz_ABC6DEFG{7HIJKL8MNOPQ}R9STUVWXYZ-';
        $pass = substr(str_shuffle($str), 0, $pass_len);
        Ответить
    • вообще пароль, к котором каждый символ встречается один раз менее надёжен, чем если бы встречались все.. или я что-то путаю?
      Ответить
      • конечно, менее надёжен. Но тот, кто его будет подбирать, должен знать о том, что они там не повторяются, иначе пофиг.
        Ответить

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