Як це працює, Статті, Perl, статті

Коли відбувається заповнення поля з даними, система просить користувача
вказати код, який він бачить на картинці.

Після перевірки правильності введення відбувається рішення – пускати клієнта в
систему чи ні.

Великий плюс такого методу – надійність. "Розкрити" картинку і знайти в ній
цифри не так-то просто, тому що тут доведеться писати складний аналізатор
зображення.

Алгоритм роботи



Зауваження щодо реалізації


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

Але вирішив все ж робити з запасом надійності.

Випадковий пароль для картинки

$kol_digit=5;
@pass_chars=(0..9);

srand();
$ Password = join ("", @ pass_chars [map {rand @ pass_chars} (1 .. $ kol_digit)]);


Не забуваємо розкручувати генератор випадкових чисел.

У прикладі пароль створюється виключно з цифр, але для підвищення
безпеки можна додати і букви

@ Pass_chars = ("A" .. "Z", "a" .. "z", 0 .. 9, qw (%! $% ^ & *));

Також можна використовувати слова і шматки тексту зі словника.

Зашифрований код сесії


Використовується модуль Perl Digest:: MD5 (http://www.imagemagick.org/)

Слово пароля посимвольно виводимо на зображення, кожна буква відображається з
випадковим зсувом по горизонталі й вертикалі, а також обертанням.

Після цього "зашумлять" зображення – зверху у випадкових місцях розкидаємо
різнокольорові точки.

Можна ще додати висновок букв різними шрифтами і кольорами, а також
використовувати різнокольоровий фон (наприклад шматочки фотографій)

Исходники модуля можна взяти за адресою http://www.price-list.kiev.ua/cgi-bin/msg_board.cgi?do=add-msg

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*