Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Новый скрипт генерации пароля
 
 автор: ZC   (19.12.2005 в 20:55)   письмо автору
 
 

Вот решил немного дополнить скрипт генерации пароля, может быть кому-нибудь понадобиться:


<?php
 
/////////////////////////////////////////////
 // Фцнкция для генерирования равномерного 
 // пароля
 /////////////////////////////////////////////
 
function generate_passwd($numlimit$savetofile)
 {
     
/////////////////////////////////////////////
     // Массив с символами, входящими в состав 
    // генерируемого пароля
    /////////////////////////////////////////////
     
$array_chars = array('a','b','c','d','e','f',
                          
'g','h','i','j','k','l',
                          
'm','n','o','p','r','s',
                          
't','u','v','x','y','z',
                         
'A','B','C','D','E','F',
                          
'G','H','I','J','K','L',
                          
'M','N','O','P','R','S',
                          
'T','U','V','X','Y','Z',
                          
'1','2','3','4','5','6',
                          
'7','8','9','0','.',',',
                          
'(',')','[',']','!','?',
                          
'&','^','%','@','*','$',
                          
'<','>','/','|','+','-',
                          
'{','}','~');
                         
    
/////////////////////////////////////////////             
    // Генерируем пароль
    /////////////////////////////////////////////
    
$passwd "";
    for(
$i 0$i $numlimit$i++)
    {
      
// Вычисляем случайный индекс массива
      
$index rand(0count($array_chars) - 1);
      
$passwd .= $array_chars[$index];
    }
    
    
/////////////////////////////////////////////
    // Если параметр $savetofile равен единице, 
    // то сохраняем его ф файл
    /////////////////////////////////////////////
    
if($savetofile == 1
    {
        
// Открываем файл
        
$fid fopen("passwds.txt""a+");
        
// Добавляем строку с паролем в файл, дату
        // его генерации и IP адрем пользователя
        
$date date("F:d:Y");
        
// Получаем адрес пользователя
        
$ipaddress $_SERVER['REMOTE_ADDR'];
        
// Формируем переменную
        
$passwd_write $passwd." : ".$date." : ".$ipaddress."\r\n";
        
// Записываем в файл
        
fwrite($fid$passwd_write);
        
// Возвращаем результат
        
return $passwd;
    }
    else
    {    
        
// Возвращаем результат
        
return $passwd;
    }    
 }
?> 
<form action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="post">
    <table cellpadding="2" cellspacing="0" border="0">
        <tr>
            <td colspan="2"><b><font color="#8B1010">Введите длину пароля</font></b></td>
        </tr>
        <tr>
            <td><input type="text" name="numlimit" size="20" value="<?php echo $_POST['numlimit']; ?>"></td>
            <td><input type="submit" name="goaction" value="Генерировать"></td>
        </tr>    
    </table>
</form>
<?php
 
/////////////////////////////////////////////
 // Если параметр передан. то выводим
 // сгенерированный пароль
 /////////////////////////////////////////////
 
if(isset($_POST['numlimit']))
 {
     
// Проверяем значение переменной
    
if(!is_numeric($_POST['numlimit'])) 
    {
        echo 
"<b><font color=#000000>Неправильный формат длины генерируемого пароля</font></b>"
        exit();
    }
    else
    {    
        
// Выводим пароль    
        
echo "<b><font color=#000000>".generate_passwd($_POST['numlimit'], 1)."</font></b>";
    }    
 }
?>

   
 
 автор: cccp   (19.12.2005 в 21:49)   письмо автору
 
   для: ZC   (19.12.2005 в 20:55)
 

Ogromnoe spasibo !!!

Priyatno kogda ludi deliatsia svoimi skriptami i znaniyami.

:)

   
 
 автор: ZC   (19.12.2005 в 22:03)   письмо автору
 
   для: cccp   (19.12.2005 в 21:49)
 

Спасибо не мне, a админам этого сайта.
Я только дополнил их скрипт :)

   
 
 автор: Void   (20.12.2005 в 00:23)   письмо автору
 
   для: ZC   (19.12.2005 в 22:03)
 

Но я не рекомендую использовать его для каких-либо операций кроме автризации на сайтах и т.д., так как по времени последнего изменения файла теоретически можно получить Seed генератора случайных чисел и заново выполнить данный скрипт, получив тот же пароль.

   
 
 автор: Саня   (20.12.2005 в 13:04)   письмо автору
 
   для: ZC   (19.12.2005 в 20:55)
 

Этот скрипт очень громоздкий.

Неплохой скрипт я дал в теме:
http://softtime.ru/forum/read.php?id_forum=1&id_theme=8352&page=1
Только массив $spec надо вынести за пределы цикла.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования