Рубрики

Программа для генерации CAPTCHA и проверки пользователя

CAPTCHA (полностью автоматизированный публичный тест Тьюринга, рассказывающий о компьютерах и людях отдельно) — это тест, позволяющий определить, является ли пользователь человеком или нет.

Таким образом, задача состоит в том, чтобы каждый раз генерировать уникальную CAPTCHA и сообщать, является ли пользователь человеком, запрашивая у пользователя ту же CAPTCHA, которая была сгенерирована автоматически, и проверяя ввод пользователя с помощью сгенерированной CAPTCHA.

Примеры:

CAPTCHA: x9Pm72se
Input: x9Pm62es
Output: CAPTCHA Not Matched

CAPTCHA: cF3yl9T4
Input: cF3yl9T4
Output: CAPTCHA Matched

Набор символов для генерации CAPTCHA хранится в массиве символов chrs [], который содержит (az, AZ, 0-9), поэтому размер chrs [] равен 62.

Чтобы каждый раз генерировать уникальную CAPTCHA, случайное число генерируется с использованием функции rand () (rand ()% 62), которая генерирует случайное число в диапазоне от 0 до 61, и сгенерированное случайное число берется в качестве индекса массива символов chrs [] таким образом генерирует новый символ captcha [], и этот цикл выполняется n (длина CAPTCHA) раз, чтобы сгенерировать CAPTCHA заданной длины.

// C ++ программа для автоматической генерации CAPTCHA и
// проверить пользователя
#include<bits/stdc++.h>

using namespace std;

  
// Возвращает true, если заданные две строки совпадают

bool checkCaptcha(string &captcha, string &user_captcha)

{

    return captcha.compare(user_captcha) == 0;

}

  
// Генерирует капчу заданной длины

string generateCaptcha(int n)

{

    time_t t;

    srand((unsigned)time(&t));

  

    // Символы для включения

    char *chrs = "abcdefghijklmnopqrstuvwxyzABCDEFGHI"

                  "JKLMNOPQRSTUVWXYZ0123456789";

  

    // Генерируем n символов из набора и

    // добавить эти символы в капчу.

    string captcha = "";

    while (n--)

        captcha.push_back(chrs[rand()%62]);

  

    return captcha;

}

  
// Код драйвера

int main()

{

    // Генерация случайной капчи

    string captcha = generateCaptcha(9);

    cout << captcha;

  

    // Попросить пользователя ввести капчу

    string usr_captcha;

    cout << "\nEnter above CAPTCHA: ";

    cin >> usr_captcha;

  

    // Уведомить пользователя о соответствии статуса

    if (checkCaptcha(captcha, usr_captcha))

        printf("\nCAPTCHA Matched");

    else

        printf("\nCAPTCHA Not Matched");

  

    return 0;

}

Выход:

CAPTCHA: cF3yl9T4
Enter CAPTCHA: cF3yl9T4
CAPTCHA Matched

Эта статья предоставлена Химаншу Гупта (Багри) . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Программа для генерации CAPTCHA и проверки пользователя

0.00 (0%) 0 votes