Пишу скрипт генератора пароля, как его можно усовершенствовать?

IL
На сайте с 20.04.2007
Offline
435
#31
setka_gs:
вот такая функция в данном случае в корне не верна..

кхм-кхм.. это не функция.

setka_gs:
Я уловил что вы не отличаете функцию от строки, а строку от массива.
setka_gs:
там $letters нужно состовлять из данных которые с формы пришли, тогда будет 3 строчки кода на ВСЕ возможные варианты, будь их хоть 500.

На самом деле основная задумка была показать, что комбинаторика тут не к месту.

А в $t (см код из поста выше)

Marat_Kh:
function pass($t='c',$count_r =6)

можно передать implode($_POST['letters']) или что там "с формы приходит"... конечно, предварительно, проверив.

А про 3 строчки кода на 500 вариантов - можно подробностей?

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#32

Ну раз пошла такая пьянка, то и я выложу свою фантазию:)


<form action="" method="post">
<input type="checkbox" name="digits" value="yes" /> - Цифры<br />
<input type="checkbox" name="letters" value="yes" /> - Буквы<br />
<input type="checkbox" name="other" value="yes" /> - Другие символы<br />
<input type="text" name="length" /> - Длина пароля<br />
<input type="submit" name="submit" value="submit" />
</form>
<?php
function getRandomCell($array)//Получаем случайную ячейку переданного массива. ЗЫ: я знаю про array_rand)))
{
$count = count($array);
$rand = rand(0, $count-1);
return $array[$rand];
}


function genPass($length, $accessSymbols)
{
$pass = '';

if ($length == 0)
{
$length = 10;//Длина пароля по умолчанию
}

if (!count($accessSymbols))
{
$accessSymbols = array('digits','letters','other');//Если в функцию пришел пустой массив
}

$symbols =
array
(
'digits' => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
'letters' => array('a','b', 'c', 'd', 'e', 'z'),
'other' => array('$', '!', '@', '#')
);

for ($i=0; $i<$length; $i++)
{
$randGroupSymbols = getRandomCell($accessSymbols);
$symbol = getRandomCell($symbols[$randGroupSymbols]);
$pass .= $symbol;
}

return $pass;
}


$length = (int) $_POST['length'];//Записываем жделаемую длину пароля в переменную

unset($_POST['length'], $_POST['submit']);//удаляем из массива _ПОСТ лишние данные

$accessSymbols = array();

foreach($_POST as $k=>$v)//создаем массив, который содержит в себе список допустимых символов
{
$accessSymbols[] = $k;
}

echo genPass($length, $accessSymbols);
?>
Подпись))
D
На сайте с 14.01.2007
Offline
153
#33

Милованов Ю.С, моя фантазия короче:)))

IL
На сайте с 20.04.2007
Offline
435
#34
Dinozavr:
Милованов Ю.С, моя фантазия короче))

Нашли место.. фантазиями меряться..

Я уж думал на топики ТС-а никто реагировать не будет.. Ан нет.. растёт...

p.s. Кстати, завидное упорство.

siv1987
На сайте с 02.04.2009
Offline
427
#35

Даешь фантазию ТСа с 20-ю функциями!1

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#36

Загадка: ТС пишет скрипт казино(рулетка). Сколько ему понадобиться тысяч функций для его комбинаторики:D

SG
На сайте с 22.03.2013
Offline
7
#37
ivan-lev:
кхм-кхм.. это не функция.

да уже понял, пишу и читаю с телефона... немного напрягает.

ivan-lev:
А про 3 строчки кода на 500 вариантов - можно подробностей?

можно, из формы передаются name + value. В обработчике проверяем isset и если name true, $letters .= $value. Ну как-то так...

при такой реализации $letters собирается не из скрипта, а из формы. Так что перебирать варианты не нужно.

единственно при таком раскладе $value на всякое проверять нужно более тщательно...

anton000
На сайте с 10.05.2013
Offline
32
#38
Милованов Ю.С:
Загадка: ТС пишет скрипт казино(рулетка). Сколько ему понадобиться тысяч функций для его комбинаторики:D

Вот, вы правильно подчеркнули! Даже, со скриптом рулетки, 100% есть какие-то методы объединения?

---------- Добавлено 04.07.2013 в 15:07 ----------

Вот есть сайт: http://www.randstuff.ru/password/ на нём мне очень нравится генератор. Скачал с сайта все файлы JS и CSS запустил у себя, нечего не работает. Значит обработчик php сервер, а не JS.

И ещё у меня к вам вопрос: на этом же сайте, так красиво передвигается ползунок шкалы выбора колисечтва символов, и пароль выдаётся без перезагрузки, и текст красиво появляется. Скажите какие языки и библиотеки языков для этого понадобились? Чтобы реализовать такое?

siv1987
На сайте с 02.04.2009
Offline
427
#39
anton000:
Вот есть сайт: http://www.randstuff.ru/password/ на нём мне очень нравится генератор. Скачал с сайта все файлы JS и CSS запустил у себя, нечего не работает. Значит обработчик php сервер, а не JS.

Да, там php-ешный. Видно по якс запросу и результату.

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

[Удален]
#40
siv1987:
Да, там php-ешный. Видно по якс запросу и результату.

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

Вопрос к ТС-у или в зал?)

Половину пороля (примерно) забить буквами. Оставшуюся часть забить спецсимволами. Перемешать получившееся.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий