антиспамових інструментів. p align="justify">
MD5 . Цей алгоритм був розроблений в 1991 році професором Рональдом Л. Рівестом. Алгоритм MD5 часто називають алгоритмом шифрування, але насправді це твердження хибне. Головною перевагою MD5 є те, що зашифровані дані відновити не можна. А що це за алгоритм шифрування, який шифрує дані так, що ніхто їх не зможе дізнатися? MD5 - це хеш-функція. У багатьох виникло запитання: що ж це таке? Зупинимося на цьому питанні.
Що таке Хеш-функція? Припустимо, у нас є деякий набір даних. Для простоти будемо розглядати натуральні числа від 1 до 106. І нехай є деяка функція, в якій один параметр - натуральне число від 1 до 106, а повертається значення - натуральне число від 1 до 1000. Нам не важливо, що саме робить ця функція, нам важливо те, що вона кожному натуральному числу від 1 до 106 ставить у відповідність інше натуральне число від 1 до 1000. Для прикладу розглянемо одну з найпростіших функцій, що виконують цю дію:
int hash (long int x) {(x% 1000 == 0) return 1000; (x% 1000);
} hash (x: longint): longint; (x mod 1000 = 0) then hash: = 1000 else: = x mod 1000;
end;
Це і є проста хеш-функція. Якщо ми знаємо параметр функції, то однозначно можемо сказати, який буде результат. А якщо нам відомий результат, то чи можемо ми дізнатися однозначно параметр? Звичайно, ні. Для числа 234 параметр може бути 234,1234, 2234,3234 ... Тому однозначно відновити параметр не вийде. p align="justify"> Навіщо потрібен MD5? Для функції з прикладу, якщо відомий результат, можна легко знайти параметр, для якого буде такий же результат. А от для функції MD5 це зробити не так-то просто. Тобто якщо у нас є тільки результат функції MD5, то ми не зможемо знайти параметр, для якого функція видасть цей же результат (мова навіть не йде про однозначне відновлення параметра). MD5 використовують для зберігання паролів. Наведу приклад, коли зберігання паролів у відкритому вигляді небезпечно. Візьмемо сайт "Дистанційне навчання" (сайт). На цьому сайті проходять міські олімпіади школярів з інформатики, щодня навчаються сотні школярів і студентів. У багатьох школах доступу в Інтернет немає, і школярам необхідно користуватися послугами сайту або вдома, або не в своїй школі. Тому сайт почали встановлювати в самих школах. Тобто навчання відбувається не на самому сайті, а на його копії, встановленої в школі. Проблема в тому, що разом з сайтом школа отримувала паролі всіх користувачів (у тому числі і адміністраторів), і цими паролями будь-хто міг скористатися для "адміністрування" самого сайту. Було два способи вирішити цю проблему:
. Перед створенням копії сайту, яка буде перенесена до школи, видаляти всі паролі. p align="justify">. Зашифрувати всі паролі так, щоб ніхто не зміг розшифрувати їх назад. p align="justify"> Був обраний другий ...