Генерация случайного пароля

Этот урок покажет вам, как сделать генерацию случайного пароля с помощью PHP. Следующий код включает также проверку на минимальное и максимальное количество символов. Итак…

<?php

$min=4; // минимальное количество символов
$max=15; // максимальное количество символов

$pwd="";

for($i=0;$i<rand($min,$max);$i++)

// Загрузка и проверка символов

{
$num=rand(48,122);

if(($num > 97 && $num < 122))
{
$pwd.=chr($num);
}

else if(($num > 65 && $num < 90))
{
$pwd.=chr($num);
}

else if(($num >48 && $num < 57))
{
$pwd.=chr($num);
}

else if($num==95)
{
$pwd.=chr($num);
}

else
{
$i--;
}
}

echo $pwd; // вывод пароля
?>

Комментарии

Оставьте свой комментарий
V
Vania

А мне аткой способ нравится 🙂

<?php

function gPass( $num = 12 ){
$letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
$res_str = '';
$str_len = strlen( $letters );
if( ! is_int( $num ) || $num <= 0 || $num > 32 )
$num = 12;
for( $i = 0; $i < $num; $i++ )
$res_str .= $letters{ mt_rand(0, $str_len - 1) };
return $res_str;
}

?>

1
1_and_0

TS <-- Большое спасибо.
Каин <-- "У меня пока PHP на плохом уровне, точнее на начальном", вроде бы это все определяет.

1
1_and_0

У меня пока PHP на плохом уровне, точнее на нчальном, я написал генератор, только потом начал искать готовые скрипты да бы сравнить.
Не ругайте за код, у лучше уточните ошибки, да бы не повторять их вновь:

<?php
Function RandomPassword()
{
$RU='A'; $RD='a'; //RU - RegistrUp , RD - RegistrDown
For ($i=1;$i<=26;$i++)
{
    $RegistrUp[$i] = $RU;
    $RegistrDown[$i] = $RD;
    $RU++;
    $RD++;
   }
For ($i=0;$i<10;$i++)
   $Number[$i]=$i;
$RandomPassword='';
For ($n=1;$n<9;$n++)
{
$i=rand(1,3);
    $Symbol='';
    Switch ($i)
    {
    Case 1:
       {
       $j=rand(1,26);
       $Symbol=$RegistrUp[$j];
       Break;
       }
       Case 2:
       {
       $j=rand(1,26);
       $Symbol=$RegistrDown[$j];
       Break;
       }
       Case 3:
       {
       $j=rand(1,10);
       $Symbol=$Number[$j];
       Break;
       }
    }
    $RandomPassword .= $Symbol;
   }
Return $RandomPassword;
}
Echo RandomPassword();
?>

T
TS

ну как минимум более "логичен" чтоли такой вариант если писать аналогию данному коду:

<?php
$min=4; // минимальное количество символов
$max=15; // максимальное количество символов
for($i=0;$i<rand($min, $max);$i++)
{
$num=rand(48, 122);
if(($num > 48 && $num < 57) || ($num > 65 && $num < 90) || ($num > 97 && $num < 122) || ($num == 95))
$pwd .= chr($num);
else
$i--;
}
?>
автор, во первых соблюдайте хоть простейшее форматирование, во вторых используйте elseif() в таких случаях

К
Каин

Автору надо учиться программировать. Сие писал человек, открывший php.net и знающий пару сигнатур базовых операций. Сама структура элсифов тут добавила кода раза в 2 больше, чем надо.