- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
function generate_password($number) {
$arr = array('a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','q','p','r','s',
't','u','v','w','x','y','z',
'A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','Q','P','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);
$pass .= $arr[$index];
}
return $pass;
}
И ведь не лень всё перечислять было?! А по{man}'ить Array-функции лень... И написать что-то типа, хм...
$alnum_ar = array_merge(range('a','z'),range('A','Z' ),range(0,9));
array_push($alnum_ar,'_');
devels 09.12.2010 10:53 # +2
dwinner 09.12.2010 11:52 # 0
DrFreez 09.12.2010 13:02 # 0
Анонимус 09.12.2010 14:25 # +4
Еще полезно убрать все ненужные пробелы. Форматирование конечно пострадает, зато файл будет меньше весить, с большей вероятностью застрянет в кеше винта.
wmmorgun 09.12.2010 14:28 # −4
код должен быть в первую очередь читабельным, а для опкода длина переменных роли не играет или вы всё еще не используете опкод кеш?
Анонимус 09.12.2010 14:32 # +1
я просто люблю, когда пыхапешники рассуждают об оптимизации)
xXx_totalwar 09.12.2010 15:22 # +1
пыхеры неасилили даже AST и тем более оптимизирующие проходы. так что ни о каких оптимизациях в пыхоговне и речи нет.
brainstorm 09.12.2010 22:46 # 0
а дальше - дело разраба как он читает маны и составляет алгоритмы.
bugmenot 09.12.2010 22:48 # +1
brainstorm 09.12.2010 22:59 # 0
bugmenot 09.12.2010 23:02 # 0
xXx_totalwar 09.12.2010 22:54 # 0
с подачи ГК почитал бложик Расмуса - банальная двуличная шавка.
brainstorm 09.12.2010 22:58 # 0
Анонимус 10.12.2010 00:25 # +1
надо все делать руками и сторонними продуктами
хочешь не перепарсивать по 20 раз?
пожалуйте в еакселератор
хочешь держать объекты в памяти?
пожалуйте в мемкеш
хочешь делать что-то в фоне?
пожалуйте в крон
хочешь мапить урлы?
пожалуйте в мод_реврайт
все приложение -- набор кучи костыликов и перемычичков
манифест пыховца: к черту фреймворки
я все на коленке сделаю
brainstorm 10.12.2010 01:28 # −2
пхп сам по себе сборище расширений пользующих все что сдеано сторонними руками. и что?
а зенд рулит и педалит. и солар тоже. не надо ляля.
Анонимус 10.12.2010 13:58 # +2
Я привел Вам 3 примера того, когда в ПХП надо использовать костыль.
Вы, полагаю, с ними согласны, верно?
devels 09.12.2010 14:30 # 0
P.S. А строка работает наверно быстрее чем массивы раз в 10. А на счет опкода, пхп хранит название переменных, и иногда вычисляет хеш от названия переменной, естественно вычислять хеш от длинных названий дольше, но это такая мелочь по сравнению с остальным кодом.
Анонимус 09.12.2010 14:33 # 0
devels 09.12.2010 14:49 # 0
Анонимус 09.12.2010 14:51 # −1
wmmorgun 09.12.2010 14:26 # 0
Вот над чем стоит подумать:
- если надо поменять список доступных символов, будете лезть в код функции?
- если понадобиться генерировать пароли разным набором символов, будете копипастить методы, т.е. generate_password, generate_strong_password, generate_very_strong_password_with_russi an_symbols и т.д.?
dwinner 09.12.2010 14:38 # 0
devels 09.12.2010 14:50 # 0
dwinner 09.12.2010 14:36 # +1
Анонимус 09.12.2010 14:42 # +1
devels 09.12.2010 14:53 # 0
Анонимус 09.12.2010 14:55 # 0
dwinner 09.12.2010 15:07 # +1
1) Укоротить название функции, например MakePass!
2) Вынести строку с символами в heap-memory (global scope)
3) В строке для генерации перечислить все видимые ASCII (чтоб
никто не выё.., что символом мало для генерации паролей), лучше вручную,
конечно (опмитизатор в гору не пойдёт... гы гы)
4) strlen вызвать один раз перед циклом, а не $num-раз в цикле!
5) $i инициализировать перед циклом for, а блок инициализации for оставить пустым;
6) Имена переменных делать по возможности меньшими, чтобы внутреннюю таблицу
символом пощадить, да и вообще переменных поменьше.
7) В конце, byte-код из всего полученного сделать
brainstorm 09.12.2010 22:54 # +1
1) 2) 3) 4) 6) - задротство.
А. еще вернее будет насрать на все и взяв диапазон ASCII по номерам + рандом + цикл составлять пароли. и не вые....ся :)
вот таким гавнокодом например :)
bugmenot 09.12.2010 22:56 # +1
> 1) 2) 3) 4) 6) - задротство.
4 === правильное задротство?
brainstorm 09.12.2010 23:00 # 0
dwinner 10.12.2010 12:01 # 0
dwinner 09.12.2010 14:51 # 0
Govnocoder#0xFF 09.12.2010 15:37 # 0
dwinner 09.12.2010 16:10 # 0
Lure Of Chaos 09.12.2010 17:39 # 0
и его вариаций?
dwinner 09.12.2010 18:30 # 0
brainstorm 09.12.2010 23:03 # 0
это как - уникальный, еще уникальнее, еще более уникальная уникальность? ппц :-D
brainstorm 09.12.2010 23:07 # 0
там еще внизу жесткие примеры идут.
$unique = md5( uniqid() ); // 32 characters long
уникализация. ога.
Анонимус 10.12.2010 00:30 # +2
что бы для надежности
я же говорю: когда пхпшники говорят -- петросяны молчат)
brainstorm 10.12.2010 01:31 # +2
//ойбля. пишу матан пхпшным синтаксисом. ну пиздец.
inkanus-gray 10.12.2010 02:42 # +1
Даже статьи написаны о столкновениях в хэш-функциях:
http://eprint.iacr.org/2004/199
http://eprint.iacr.org/2004/264
http://eprint.iacr.org/2006/105
http://cryptography.hyperlink.cz/MD5_collisions.html
Все ссылки из Википедии.
brainstorm 10.12.2010 13:16 # +1
Анонимус 10.12.2010 13:59 # 0
andremacareno 09.12.2010 18:07 # 0
dwinner 09.12.2010 18:23 # 0
P.S. Прошу прощения за троллинг, не удержался. ;-)
brainstorm 09.12.2010 23:16 # 0
да, несколько секунд
qwertyuiopasdfghjklzxcvbnm
andremacareno 10.12.2010 00:26 # 0
http://typingzone.com/?page=contest_az
http://typingzone.com/?page=contest_za
набор на клаве в порядке 1)abcdefghijklmnopqrstuvwxyz; 2) zyxwvutsrqponmlkjihgfedcba.
извините, но я умею как программировать, так и набирать на клавиатуре очень быстро, простите за занудство
Oleg_quadro 10.12.2010 02:12 # 0
хм.
и что даже чайку не попьете над проектированием не задумываетесь долго?
TarasB 10.12.2010 12:04 # 0
qazwsxerdcftvbgyunhjmikolp
с 5й попытки получился алфавит
Uchkuma 10.12.2010 12:45 # 0
TarasB 10.12.2010 12:52 # 0
Uchkuma 10.12.2010 13:06 # +3
bugmenot 10.12.2010 13:12 # 0
TarasB 10.12.2010 13:59 # 0
(я про набор алфавита)
eth0 10.12.2010 20:02 # 0
Uchkuma 10.12.2010 21:46 # +1
eth0 12.12.2010 12:36 # 0
andremacareno 10.12.2010 16:04 # +1
Uchkuma 10.12.2010 12:46 # 0
dwinner 10.12.2010 13:06 # −1
запихнуть, но об этом-то уже был коммент! Так, что Внимания у кого-то
не хватило.
Мистер Хэнки 10.12.2010 16:04 # +3
*trollface*
dwinner 10.12.2010 16:47 # −3
Анонимус 10.12.2010 17:45 # 0
victir 25.08.2021 21:06 # 0