За последние 24 часа нас посетил 18061 программист и 1679 роботов. Сейчас ищут 1064 программиста ...

Генератор паролей

Тема в разделе "Решения, алгоритмы", создана пользователем Hight, 21 апр 2009.

  1. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    PHP:
    1. <?php error_reporting(E_ALL);
    2.  
    3. $up_reg = (isset($_POST['up_reg']))? 'checked="checked"' : NULL ; // верхний регистр
    4. $down_reg = (isset($_POST['down_reg']))? 'checked="checked"' : NULL ; // нижний регистр
    5. $num = (isset($_POST['num']))? 'checked="checked"' : NULL ; // цифры
    6. $symbols = (isset($_POST['symbols']) && ctype_digit($_POST['symbols']) && $_POST['symbols'] > 0 && $_POST['symbols'] <= 30)? $_POST['symbols'] : 9 ; // кол-во символов
    7.  
    8. $password = NULL;
    9.  
    10. if(isset($_POST['do']))
    11. {
    12.     $up_letters = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
    13.     $down_letters = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
    14.     $numbers = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
    15.  
    16.     $sym_array = array();
    17.     if($up_reg) $sym_array = array_merge($sym_array, $up_letters);
    18.     if($down_reg) $sym_array = array_merge($sym_array, $down_letters);
    19.     if($num) $sym_array = array_merge($sym_array, $numbers);
    20.  
    21.     $symbols_num = count($sym_array);
    22.  
    23.     $i = 0;
    24.     while($i < $symbols && $symbols_num)
    25.     {
    26.         $password = $password.$sym_array[rand(0, ($symbols_num - 1))];
    27.         $i++;
    28.     }
    29. }
    30.  
    31. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    32. <html xmlns="http://www.w3.org/1999/xhtml">
    33. <head>
    34. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    35. <meta name="author" content="Илья Владимирович Пирогов aka Hight" />
    36. <title>Генератор паролей</title>
    37.  
    38. <style type="text/css">
    39.  
    40. html, body{
    41. margin:0px;
    42. height:100%;
    43. font-family:Verdana, Arial, Helvetica, sans-serif;
    44. font-size:12px;
    45. font-weight:bold; }
    46.  
    47. input.text{ width:180px; }
    48. input.submit{ font-weight:bold; }
    49.  
    50. </style>
    51.  
    52. </head>
    53.  
    54. <body>
    55.  
    56. <table width="100%" height="100%" border="0px">
    57. <tr>
    58.     <td align="center" valign="middle">
    59.  
    60.         <form action="passgen.php" method="post">
    61.         <input type="hidden" name="do" />
    62.         <table cellpadding="0px" cellspacing="0px" border="0px" style="border:#000000 solid 1px;">
    63.         <tr>
    64.             <td colspan="2" style="padding:9px; background-color:#d7d6d6;">Генератор паролей</td>
    65.         </tr>
    66.         <tr>
    67.             <td valign="middle" style="border-right:#999999 solid 1px;">
    68.  
    69.                 <table cellspacing="0px" cellpadding="9px">
    70.                 <tr>
    71.                     <td align="right">Пароль</td>
    72.                     <td align="left"><input type="text" value="<?php echo $password ?>" class="text" /></td>
    73.                 </tr>
    74.                 <tr>
    75.                     <td colspan="2" align="center"><input type="submit" value="Сгенерировать" class="submit" /></td>
    76.                 </tr>
    77.                 </table>
    78.  
    79.             </td>
    80.             <td valign="top" style="padding:9px;">
    81.  
    82.                 <fieldset><legend>Настройки</legend>
    83.  
    84.                 <table cellpadding="5px" cellspacing="0px" border="0px">
    85.                     <tr>
    86.                         <td>Верхний регистр</td><td><input type="checkbox" name="up_reg" <?php echo $up_reg; ?> /></td>
    87.                     </tr>
    88.                     <tr>
    89.                         <td>Нижний регистр</td><td><input type="checkbox" name="down_reg" <?php echo $down_reg; ?> /></td>
    90.                     </tr>
    91.                     <tr>
    92.                         <td>Цифры</td><td><input type="checkbox" name="num" <?php echo $num; ?>  /></td>
    93.                     </tr>
    94.                     <tr>
    95.                         <td>Кол-во символов</td><td><input type="text" name="symbols" value="<?php echo $symbols; ?>" style="width:23px;" /></td>
    96.                     </tr>
    97.                 </table>
    98.  
    99.                 </fieldset>
    100.  
    101.             </td>
    102.         </tr>
    103.         </table>
    104.         </form>
    105.  
    106.     </td>
    107. </tr>
    108. </table>
    109.  
    110. </body>
    111. </html>
    Мне просто нех делать.
     
  2. kostyl

    kostyl Guest

    а где же всеми рекомендуемые спецсиволы? ;)
     
  3. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    На клавиатуре остались =) Для некоторых спецсимволы очень сложно ;)
     
  4. klerick

    klerick Guest

    Для безопасности требуется пароль не менее 8 символов с использованием букв в верхнем и нижнем регистрах, цифрами и спецсимволами.
     
  5. kostyl

    kostyl Guest

    klerick
    чел, иди распараллеливай видеопотоки лучше... знаток херов.
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    и что, мой любимый «лысый карлик с голой жопой» уже не безопасен?
     
  7. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Ну ну, а ещё молиться надо сатане каждый раз когда такой пароль набираешь.
     
  8. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    :) Hight, если правда делать нечего - сделай мне админку :)
     
  9. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    klerick, раздайте секретаршам в офисе пароли в стиле: yU_o9e]!x9*)fG'! думаю в тот же день на каждом мониторе появится бумажка с паролем. Безопасность от этого, разумеется, вырастет многократно ;)
     
  10. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    На самом деле мне есть что делать. Генератор паролей я написал, чтобы из головы пасворды не брать. Надо было набить с тысячу учёток с паролями ;)
     
  11. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Хороший генератор, удобный.
     
  12. у нас "анус лысого ежа" есть
     
  13. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Hight
    Сегодня (совпадение) искал генератор паролей. В гугле твоя версия самая популярная :)

    Если интересно, то могу ссылку на генератор кинуть, который имеет не меньше двух преимуществ
     
  14. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Написал в браузере за минуту
    PHP:
    1. <?
    2. function GenPass($length=5,$usestr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"){
    3.     static $pass_save;
    4.     if(!$pass_save)$pass_save=array();
    5.     $pass='';
    6.     $usestr=preg_split("##",$usestr);
    7.     while(true){
    8.          $pass.=$usestr[rand(0,count($usestr)-1)];
    9.          if(rand(0,1))$pass=strtolower($pass);
    10.          if(strlen($pass)==$length){
    11.             if(!in_array($pass,$pass_save)){
    12.                break;
    13.             }else{
    14.                $pass='';
    15.             }
    16.          }
    17.     }
    18.     $pass_save[]=$pass;
    19.     return $pass;
    20. }
    21. ?>
     
  15. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    PHP:
    1. <?php
    2. $usestr="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz";
    3. echo substr(str_shuffle($usestr), 0, 8);
    4. ?>
    5.  
    2Mr.M.I.T.:
    [​IMG]
     
  16. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  17. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?php
    2. for($i=0;$i<8;$i++, print chr(rand(48,126)));
    3. ?>
    ;-)
     
  18. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  19. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    [vs], нет предела совершенству? ;)

    PHP:
    1. <?php
    2. for($i=8;$i--;print chr(rand(48,126)));
    3. ?>
     
  20. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    TheShock
    Хитро))
     
  21. ud0

    ud0 Активный пользователь

    С нами с:
    27 июл 2009
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Moscow
    Неплохая задумка, если не слишком важна длина полученного результата, так как в данном примере, она может не соответствовать указанному минимуму в 8 символов.

    P.S.: И как уже было правильно замечено, нет предела совершенству! ;)
     
  22. kostyl

    kostyl Guest

    ud0
    Мочи тролля!!
     
  23. TheShock

    TheShock Активный пользователь

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    ud0, а в каком таком месте, тут не 8 символов?
    Код (Text):
    1. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    2. 2b{fbskA
    3. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    4. @rj7g52Z
    5. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    6. 8eEzR7pZ
    7. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    8. b@1Di`?X
    9. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    10. Reu1R`B<
    11. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    12. P0ArhZ8f
    13. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    14. ;:|[12^3
    15. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    16. [p7U>0VI
    17. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    18. ]E\5EmdM
    19. shock@shock:~$ php -r 'for($i=8;$i--;print chr(rand(48,126))); echo "\n";'
    20. v^8Csv7v
     
  24. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
  25. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Читаю и понимаю — писькомеры :)