Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
роке $st безвоз- 

вратно теряется. И именно это позволяет нам не опасаться, что злоумышленник, 
по- 
лучивший файл паролей, сможет его когда-нибудь расшифровать. Ведь в нем нет са- 

мих паролей, нет даже их каких-то связных частей! 
Алгоритм MD5 специально был изобретен для того, чтобы как раз и обеспечить опи- 

санную выше схему. Так как все же есть вероятность того, что у разных строк 
MD5- 
коды совпадут, то, чтобы не дать возможность злоумышленнику войти в систему, 
перебирая пароли с бешеной скоростью, алгоритм MD5 работает довольно медленно. 
И его нельзя никак убыстрить, потому что это будет уже не MD5. Так что даже на 
самых мощных компьютерах вряд ли получится перебирать более нескольких тысяч 
паролей в секунду, а это совсем маленькая скорость, капля в океане возможных 
MD5- 
кодов. 
int crc32(string $str) 
Функция crc32() вычисляет 32-битную контрольную сумму строки $str. То есть, 
результат ее работы — 32-битное (4-байтовое) целое число. Эта функция работает 
гораздо быстрее md5(), но в то же время выдает гораздо менее надежные 
"хэш-коды" 
для строки. Так что, теперь, чтобы получить методом случайного подбора для двух 

разных строк одинаковые "хэш-коды", вам потребуется не триллион лет работы 
само- 
го мощного компьютера, а всего лишь… год-другой. Впрочем, если не использовать 
генератор случайных чисел, а разобраться в алгоритме вычисления 32-битной кон-

Часть IV. Стандартные функции PHP 224 
трольной суммы, эту же задачу легко можно решить буквально за секунду, потому 
что алгоритм crc32 имеет неизмеримо большую предсказуемость, чем MD5. 
string crypt(string $str [,string $salt]) 
Алгоритм шифрования DES до недавнего времени был стандартным для всех версий 
Unix и использовался как раз для кодирования паролей пользователей (тем же 
самым 
способом, о котором мы говорили при рассмотрении функции md5()). Но в последнее 

время MD5 постепенно начал его вытеснять. Это и понятно: MD5 гораздо более на- 
дежен. Рекомендую и вам везде применять md5() вместо crypt(). Впрочем, функ- 
ция crypt() все же может понадобиться вам в одном случае: если вы хотите сгене- 

рировать хэш-код для другой программы, которая использует именно алгоритм DES 
(например, для сервера Apache). 
Хэш-код для одной и той же строки, но с различными значениями $salt (кстати, 
это 
должна быть обязательно двухсимвольная строка) дает разные результаты. Если па- 

раметр $salt пропущен, PHP сгенерирует его случайным образом, так что не удив- 
ляйтесь работе следующего примера: 
$st="This is the test"; 
echo crypt($st)."
"; // можем получить, например, 7N8JKLKbBWEhg echo crypt($st)."
"; // а здесь появится, например, Jsk746pawBOA2 Как видите, два одинаковых вызова crypt() без второго параметра выдают совер- шенно разные хэш-коды. За деталями работы функции обращайтесь к документации PHP. Сброс буфера вывода void flush() Эта функция имеет очень и очень отдаленное отношение к работе со строками, но она еще дальше отстоит от других функций. Именно поэтому я включил ее в данную гла- ву. Начнем издалека: обычно при использовании echo данные не прямо сразу от- правляются клиенту, а накапливаются в специальном буфере, чтобы потом транспор- тироваться большой "пачкой". Так получается быстрее. Однако, иногда бывает нужно досрочно отправить все данные из буфера пользователю, например, если вы что-то выводите в реальном времени (так зачастую работают чаты). Вот тут-то вам и помо- жет функция flush(), которая отправляет содержимое буфера echo в браузер поль- зователя. Глава 13 Работа с массивами В части III книги мы уже рассматривали многие возможности, которые предоставля- ет PHP для работы с ассоциативными массивами. В их число входят различные меха- низмы перебора, получение числа элементов, оперирование ключами и значениями и т. д. Однако здесь перечислено далеко не все, что можно делать с массивами в PHP. Язык (особенно версии 4) содержит множество других, иногда крайне полезных, функций. В этой главе мы рассмотрим большинство из них. Сортировка массивов Начнем с самого простого — сортировки массивов. В PHP для этого существует очень много функций. С их помощью можно сортировать ассоциативные массивы и списки в порядке возрастания или убывания, а также в том порядке, в каком заблагорассу- дится — посредством пользовательской функции сортировки. Сортировка
 
<<-[Весь Текст]
Страница: из 287
 <<-