echo generate_password(8);
function generate_password($number)
{
$arr = 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','1','2','3','4',
'5','6','7','8',
'9','0',);
// Генерируем пароль
$pass = "";
for($i = 0; $i < $number; $i++)
{
// Вычисляем случайный индекс массива
$index = rand(0, count($arr) - 1);
$pasw .= $arr[$index];
}
if (!ereg("[^0-9]", $pass)){
???}
else{
return $pass;}
}
Что должно быть вместо ???, чтобы если попадаються цифры в пароле, выполнялся подбор пароля до тех пор пока в нем не будет цифр?
Спустя 2 часа, 45 минут, 16 секунд (23.07.2010 - 00:15) KaFe написал(а):
function generate_password($number)
{
$arr = 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','1','2','3','4', '5','6','7','8', '9','0',);
for($i = 0; $i < $number; $i++)
{
$index = rand(0, count($arr) - 1);
$pasw .= $arr[$index];
}
$pass=substr(md5($pasw),1,$i);
return $pass;
}
Пароль может состоять максимум из 31 символа, это из за того что кодируют md5 в 31 символ

Спустя 21 минута, 42 секунды (23.07.2010 - 00:37) molet написал(а):
А причем здесь md5?
Пароль gdfrt46 и f787fhj не подгодят, потому что в них есть цифры.
Пароль нужен без цифр (как пример): fghydh или jkkwiuq.
Пароль gdfrt46 и f787fhj не подгодят, потому что в них есть цифры.
Пароль нужен без цифр (как пример): fghydh или jkkwiuq.
Спустя 54 минуты, 8 секунд (23.07.2010 - 01:31) SlavaFr написал(а):
Цитата (molet @ 22.07.2010 - 21:37) |
Пароль gdfrt46 и f787fhj не подгодят, потому что в них есть цифры. |
A зачем тогда вообще в масиве цифры загонять?
убери цифры и ненадо тебе не какого erreg вообще.
Спустя 43 минуты, 43 секунды (23.07.2010 - 02:14) Ice написал(а):
Цитата (KaFe @ 23.07.2010 - 01:15) |
Пароль может состоять максимум из 31 символа, это из за того что кодируют md5 в 31 символ |
32
@ molet
function passgen($length)
{
$pass = "";
for( $i = 0; $i < $length; $i ++ ) {
$pass .= chr( mt_rand( 97, 122 ) );
}
return $pass;
}
так проще
Если требуется, можно даже внести еще больший элемент случайности, с помощью генерации больших и малых букв:
function passgen($length)
{
$pass = "";
for($i = 0; $i < $length; $i ++) {
$j = mt_rand( 1, 2 );
if( $j % 2 )
$pass .= chr( mt_rand( 97, 122 ) ) ;
else
$pass .= chr( mt_rand( 65, 90 ) ) ;
}
return $pass;
}
И никаких ерегов, массивов и прочего ненужного хлама.
Офигенные парольчики. Они прекрасны

GuclWrvV
iCSiBXkW
RzuZGojH
SSoHnswe
VRvBnRDv
DFUlrJty
GBLLoIUZ
zLRzeMdl
HVKhaaGb
pjlmCczX
Спустя 4 часа, 41 минута, 46 секунд (23.07.2010 - 06:56) Basili4 написал(а):
Ice
Пароли без цифер. Это как мужик без..... и вроде хорош, и пригож, но для чего ....
Афоризм запишите. Может кто будет цетировать лет через 200.
Пароли без цифер. Это как мужик без..... и вроде хорош, и пригож, но для чего ....
Афоризм запишите. Может кто будет цетировать лет через 200.

Спустя 2 часа, 41 минута, 36 секунд (23.07.2010 - 09:38) molet написал(а):
С одной стороны да, но как же быть если:
Как быть в случае, если в пароли не должно быть:
1. Двох одинаковых букв рядом одна с одной.
2. Не более двох большых букв подряд.
3. Двох спецсимволов подряд.
4. Пароль не должен начинатса с цифры или спецсимвола
5. и не должен заканчиватса спецсимволом
echo generate_password(8);
function generate_password($number)
{
$arr = 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','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','1','2',
'3','4','5','6','7','8',
'9','0','!','@','#','$',
'%','^','&','*','(',')',
'?');
// Генерируем пароль
$pass = "";
for($i = 0; $i < $number; $i++)
{
// Вычисляем случайный индекс массива
$index = rand(0, count($arr) - 1);
$pasw .= $arr[$index];
}
if ((!ereg("^[0-9]", $pass) and !ereg("[0-9]{2}")){
continue;}
else{
return $pass;}
}
Как быть в случае, если в пароли не должно быть:
1. Двох одинаковых букв рядом одна с одной.
2. Не более двох большых букв подряд.
3. Двох спецсимволов подряд.
4. Пароль не должен начинатса с цифры или спецсимвола
5. и не должен заканчиватса спецсимволом
Спустя 4 минуты, 42 секунды (23.07.2010 - 09:43) Basili4 написал(а):
molet
Мне тут мнится что регуляркой такие условия ты не одолеешь надо посимвольный анализировать щас напишу код запостю
Мне тут мнится что регуляркой такие условия ты не одолеешь надо посимвольный анализировать щас напишу код запостю
Спустя 15 минут, 51 секунда (23.07.2010 - 09:58) Basili4 написал(а):
<?php
function randomChar()
{
$arr = 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','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','1','2',
'3','4','5','6','7','8',
'9','0','!','@','#','$',
'%','^','&','*','(',')',
'?');
return $arr[array_rand($arr)];
}
function GenPwd($count)
{
$pwd=randomChar();
for ($i=1; $i<=$count; $i++)
{
do
$ch=randomChar();
while($pwd[$i-1]==$ch or (ord($pwd[$i-1])>=65 and ord($pwd[$i-1])<=90 and ord($ch)>=65 and ord($ch)<=90) );
$pwd.=$ch;
}
return $pwd;
}
for ($i=0; $i<10000; $i++)
echo GenPwd(5)."<Br />";
?>
Спустя 3 часа, 36 минут, 20 секунд (23.07.2010 - 13:35) Ice написал(а):
Цитата (Basili4 @ 23.07.2010 - 07:56) |
Пароли без цифер. Это как мужик без..... и вроде хорош, и пригож, но для чего .... |
Ну, просил, - получил, хотя щас я уверен, что он сам не знает, что ему надо.