69703

Спеціальні функції

Лекция

Информатика, кибернетика и программирование

Ми вже знайомі з технологією Cookies тому знаємо як зберегти поточний номер питання починаючи з якого тест буде продовжений. А як запам’ятати номери питань масив які згенерували для студента Зберегти масив в Cookies ми не можемо зате можна зберегти рядок.

Украинкский

2014-10-09

35 KB

0 чел.

Тема 23: Спеціальні функції

Хэш-функції

У цьому пункті ми розглянемо дві функції — md5() і crc32().

Функція md5() кодує рядок, використовуючи алгоритм MD5 (Message Digest Algorithm). Якщо бути гранично точним, то функція md5() повертає хэш-код переданого рядка.

Чим же хороший алгоритм MD5? Вірогідність того, що два різні рядки матимуть однаковий хэш-код, прагне до нуля, а це дозволяє ефективно використовувати дану функцію для шифрування паролів. А тим, що зашифроване з його допомогою повідомлення неможливо розшифрувати — для алгоритму MD5 не існує алгоритму дешифровки, як для інших алгоритмів. Для перевірки достовірності пароля потрібно зашифрувати пароль наново і порівняти зашифровані рядки: якщо вони рівні, означає пароль правильний (див. лістинг 9.8).

Лістинг 9.8. Використання хэширования

<?

$а =   "my_password";

$b =   "my_password";

$с =   "password";

if (md5($a)===md5($b)) echo "1: пароль правильний";

if (md5($a)===md5($c)) echo "2: пароль правильний";
?>

Сценарій виведе тільки перше повідомлення, оскільки рядки (значить, і їх хэш-коди) рівні. Взагалі-то використовувати цю функцію потрібно небагато не так:

Пароль не повинен зберігатися в сценарії, тим більше у відкритому
вигляді. Пароль потрібно зберігати в зашифрованому вигляді в базі даних
або в якому-небудь файлі на диску.

Введений  користувачем  пароль повинен  зашифровуватися і
порівнюватися вже із зашифрованим рядком, який прочитаний
з файлу або БД.

Окрім функції md5() ви можете використовувати функцію crypt(), яка реалізує алгоритм DES, але даний алгоритм не так ефективний, як MD5, тому його не можна використовувати для серйозного проекту.

Функція crc32() використовується для обчислення 32-бітової контрольної суми рядка. Дана функція може вам пригодиться в нагоді для реєстрації якого-небудь програмного продукту через Internet, хоча я порекомендував би написати власну функцію для цієї мети, тому що crc32() — стандартна функція, і її може використовувати хто завгодно.

<?

$SN   =   "012103343"; echo   crc32($SN); ?>

Функція Serialize()

Перед нами поставлено практичне завдання: ми розробляємо систему контролю знань (просто кажучи, тест), і нам потрібно передбачити продовження тесту з того місця, де він був перерваний.

Ми вже знайомі з технологією Cookies, тому знаємо, як зберегти поточний номер питання, починаючи з якого тест буде продовжений. А як запам'ятати номери питань (масив), які згенерували для студента? Зберегти масив в Cookies ми не можемо, зате можна зберегти рядок. Функція Serialize() дозволяє перетворити будь-який об'єкт в рядок, нею ми і скористаємося для збереження нашого масиву в Cookies. Звернете увагу: рядок, отриманий в результаті роботи serialize(), має спеціальний формат. Щоб відновити з цього рядка об'єкт назад, використовуйте функцію unserialize (). Повернемося до нашого тесту:

Ми генеруємо список номерів питань, які сериализируем
і поміщається в Cookies.

У програмі працюємо із звичайним масивом, а у разі розриву з'єднання (при повторному запуску) отримуємо масив з Cookies.

Як це реалізується програмно показано в лістингу 9.8.

Лістинг 9.8. Демонстрація використання функції Serialize()

<?

if (!isset($Questions))

{

// Cookies не встановлені - перший запуск

for($i = 0; $i<10; $i + +) $Arr[]=$i;

// Перетворимо масив в рядок

5Serialized_arr = serialize($Arr);

// Встановлюємо Cookies

setcookie("Questions",$Serialized_arr,time()+3600);

unset($Arr); // масив $Arr більше не існує

}

else

{

// Cookies встановлені - "розгортаємо" масив

$Arr = unserialize($Questions);

foreach($Arr as $v) echo "$v ";

}

?>


 

А также другие работы, которые могут Вас заинтересовать

35358. Тема: Використовування програми Провідник Мета: придбати уміння і навик роботи з програмою Провідник. 291.5 KB
  1 відкрити вікно теки диска D: і створити в ній скажімо теку Petrenko букви латинські; в левой части окна выбираем диск Д в строке меню выбираем пункт файл создать папку 2 перейменувати теку Petrenko в теку Петренко букви кирилиці; в правой части окна выделяем папку Petrenko в строке меню выбираем пункт файлпереименовать 3 з теки диска D: скопіювати в теку Петренко якийнебудь файл або теку; в правой части окна выбираем необходимый файл выделяем его в строке меню...
35360. Хронический мезотимпанит. Характер нарушения слуха. Расшифровать аудиограмму 14.59 KB
  Мезотимпанит - неизлечиваемое в течение месяца острое гнойное воспаление среднего уха с продолжающимся гноетечением следует расценивать как переход острого воспалительного процесса в хроническую форму.
35361. 70-летие Великой победы. Битва под Москвой 560.5 KB
  познакомить с некоторыми фактами и событиями из истории Великой Отечественной войны; дать возможность ощутить всеобщий эмоционально- чувственный фон того времени; развить умение высказывать свои мысли, объяснять личные чувства, слушать рассуждение одноклассников;
35362. Тема: Установка нового обладнання PlugPly. 308.5 KB
  Различие этих действий состоит в том что в окне Мой компьютер слева открывается: Системнаые папки а в проводнике все папки Переконайтеся що в контекстному меню пункт Відкрити виділений напівжирним шрифтом і зіставте це з тим фактом що саме ця дія виконується за умовчанням. Відкрийте діалогове вікно Властивості папки. На робочому столі двічі клацніть на значку Мій комп'ютер і переконайтеся у тому що вікно Мій комп'ютер відкривається не у вікні папки а в Провіднику. Якщо на Робочому столі є ярлики інших папок переконайтеся...
35363. Тема: Установка нового устаткування PlugPly. 250.5 KB
  Чим є технологія Plug nd Ply Як встановити пристрій не підтримуюче технологію Plug nd Ply Які параметри призначає Windows встановлюваному пристрою Що таке конфлікт пристроїв 1. Установить устройство Plug nd Ply очень просто. Большинство устройств изготовленных после 1995 года используют технологию Plug nd PlyНапример можно пристыковать переносной компьютер к стыковочному узлу и подключиться к сети не изменяя конфигурацию.
35364. Тема: Операційна система Ms Dos. 92 KB
  bk D: exe chi cw.exe D: exe pctools.exe D: exe pctools.hlp D: utoexes.
35366. Система удаленного управления компьютером 764.5 KB
  Компьютерные сети в настоящее время представляют собой сложные комплексы с множеством поддерживаемых протоколов передачи данных и управления, которые интенсивно совершенствуются. Компьютерные сети предоставляют пользователям сервисы, реализуемые в виде сетевых приложений.