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