Что такое CAPTCHA? CAPTCHA — это автоматизированный тест чтобы определить, человек ли использует программу, или бот.
Сейчас CAPTCHA распространена по Сети, в основном, в виде автоматически сгенерированной картинки с текстом, который должен распознать пользователь для выполнения определенного действия (как правило, заполнение какой-либо формы) и прописать в определенном текстовом поле.
При программировании на Perl данная технология реализуется довольно легко с помощью модуля Authen::Captcha. Ниже приведен исходный код генерации изображения и проверки введенного пользователем текста:
#!/usr/bin/perl
use strict;
use warnings;
use Authen::Captcha;
use IO::Prompt;
# определям директории для хранения
# генерируемых данных
my $captcha = Authen::Captcha->new(
data_folder => '/tmp/Authen_Captcha',
output_folder => '~/public_html/',
);
# генерируем картинку с 5 символами
my $md5sum = $captcha->generate_code(5);
# выводим её пользователю:
my $code = prompt "$md5sum.png ";
# проверяем результат:
my $result = $captcha->check_code( $code, $md5sum );
# в зависимости от результата,
# выводим сообщение
if ( $result == 1 ) {
print "Верно\n";
} else {
print "Неверно!\n";
}