Programa para generar CAPTCHA y verificar usuario

Un CAPTCHA (Prueba de Turing Pública Completamente Automatizada para diferenciar a las Computadoras de los Humanos) es una prueba para determinar si el usuario es humano o no.
Por lo tanto, la tarea es generar un CAPTCHA único cada vez y saber si el usuario es humano o no pidiéndole al usuario que ingrese el mismo CAPTCHA que se generó automáticamente y verificando la entrada del usuario con el CAPTCHA generado.
Ejemplos: 
 

CAPTCHA: x9Pm72se
Input: x9Pm62es
Output: CAPTCHA Not Matched

CAPTCHA: cF3yl9T4
Input: cF3yl9T4
Output: CAPTCHA Matched

El conjunto de caracteres para generar CAPTCHA se almacena en una array de caracteres chrs[] que contiene (az, AZ, 0-9), por lo tanto, el tamaño de chrs[] es 62. 
Para generar un CAPTCHA único cada vez, se genera un número aleatorio usando la función rand() (rand()% 62) que genera un número aleatorio entre 0 y 61 y el número aleatorio generado se toma como índice para la array de caracteres chrs [], por lo tanto, genera un nuevo carácter de captcha [] y este ciclo se ejecuta n (longitud de CAPTCHA) veces para generar CAPTCHA de longitud dada.
 

CPP

// C++ program to automatically generate CAPTCHA and
// verify user
#include<bits/stdc++.h>
using namespace std;
 
// Returns true if given two strings are same
bool checkCaptcha(string &captcha, string &user_captcha)
{
    return captcha.compare(user_captcha) == 0;
}
 
// Generates a CAPTCHA of given length
string generateCaptcha(int n)
{
    time_t t;
    srand((unsigned)time(&t));
 
    // Characters to be included
    char *chrs = "abcdefghijklmnopqrstuvwxyzABCDEFGHI"
                  "JKLMNOPQRSTUVWXYZ0123456789";
 
    // Generate n characters from above set and
    // add these characters to captcha.
    string captcha = "";
    while (n--)
        captcha.push_back(chrs[rand()%62]);
 
    return captcha;
}
 
// Driver code
int main()
{
    // Generate a random CAPTCHA
    string captcha = generateCaptcha(9);
    cout << captcha;
 
    // Ask user to enter a CAPTCHA
    string usr_captcha;
    cout << "\nEnter above CAPTCHA: ";
    cin >> usr_captcha;
 
    // Notify user about matching status
    if (checkCaptcha(captcha, usr_captcha))
        printf("\nCAPTCHA Matched");
    else
        printf("\nCAPTCHA Not Matched");
 
    return 0;
}

Java

// Java pprogram to automatically generate CAPTCHA and
// verify user
import java.util.*;
import java.io.*;
 
class GFG
{
     
    // Returns true if given two strings are same
    static boolean checkCaptcha(String captcha, String user_captcha)
    {
        return captcha.equals(user_captcha);
    }
     
    // Generates a CAPTCHA of given length
    static String generateCaptcha(int n)
    {
        //to generate random integers in the range [0-61]
        Random rand = new Random(62);
         
        // Characters to be included
        String chrs = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
      
        // Generate n characters from above set and
        // add these characters to captcha.
        String captcha = "";
        while (n-->0){
            int index = (int)(Math.random()*62);
            captcha+=chrs.charAt(index);
        }
           
        return captcha;
    }
     
    // Driver code
    public static void main(String[] args)throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
         
        // Generate a random CAPTCHA
        String captcha = generateCaptcha(9);
        System.out.println(captcha);
      
        // Ask user to enter a CAPTCHA
        System.out.println("Enter above CAPTCHA: ");
        String usr_captcha = reader.readLine();
      
        // Notify user about matching status
        if (checkCaptcha(captcha, usr_captcha))
            System.out.println("CAPTCHA Matched");
        else
            System.out.println("CAPTCHA Not Matched");
    }
}
 
// This code is contributed by shruti456rawal

Python3

# Python program to automatically generate CAPTCHA and
# verify user
import random
 
# Returns true if given two strings are same
def checkCaptcha(captcha, user_captcha):
    if captcha == user_captcha:
        return True
    return False
 
# Generates a CAPTCHA of given length
def generateCaptcha(n):
     
    # Characters to be included
    chrs = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
     
    # Generate n characters from above set and
    # add these characters to captcha.
    captcha = ""
    while (n):
        captcha += chrs[random.randint(1, 1000) % 62]
        n -= 1
    return captcha
 
# Driver code
 
# Generate a random CAPTCHA
captcha = generateCaptcha(9)
print(captcha)
 
# Ask user to enter a CAPTCHA
print("Enter above CAPTCHA:")
usr_captcha = input()
 
# Notify user about matching status
if (checkCaptcha(captcha, usr_captcha)):
    print("CAPTCHA Matched")
else:
    print("CAPTCHA Not Matched")
 
# This code is contributed by shubhamsingh10

Producción: 
 

CAPTCHA: cF3yl9T4
Enter CAPTCHA: cF3yl9T4
CAPTCHA Matched

Este artículo es una contribución de Himanshu Gupta (Bagri) . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *