logo

Programm zum Generieren von CAPTCHA und zum Verifizieren des Benutzers

A CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) ist ein Test, um festzustellen, ob der Benutzer ein Mensch ist oder nicht.
Die Aufgabe besteht also darin, jedes Mal ein eindeutiges CAPTCHA zu generieren und festzustellen, ob der Benutzer ein Mensch ist oder nicht, indem der Benutzer aufgefordert wird, dasselbe CAPTCHA einzugeben, das automatisch generiert wurde, und die Benutzereingabe mit dem generierten CAPTCHA überprüft wird.
Beispiele: 

CAPTCHA: x9Pm72se Input: x9Pm62es Output: CAPTCHA Not Matched CAPTCHA: cF3yl9T4 Input: cF3yl9T4 Output: CAPTCHA Matched

Der Satz von Zeichen zum Generieren von CAPTCHA wird in einem Zeichenarray chrs[] gespeichert, das (a-z A-Z 0-9) enthält, daher beträgt die Größe von chrs[] 62. 
Um jedes Mal, wenn eine Zufallszahl generiert wird, ein eindeutiges CAPTCHA zu generieren, verwenden Sie die Funktion rand() (rand()%62), die eine Zufallszahl zwischen 0 und 61 generiert. Die generierte Zufallszahl wird als Index für das Zeichenarray chrs[] verwendet. Dadurch wird ein neues Zeichen von captcha[] generiert. Diese Schleife wird n-mal (Länge des CAPTCHA) ausgeführt, um ein CAPTCHA mit der angegebenen Länge zu generieren.

Algorithmus:



  1. Deklarieren und definieren Sie zunächst die Funktion checkCaptcha(), die zwei String-Parameter entgegennimmt und einen booleschen Wert zurückgibt.
  2. Vergleichen Sie innerhalb der checkCaptcha()-Funktion die beiden String-Parameter mit der Compare()-Funktion und geben Sie true zurück, wenn sie gleich sind; andernfalls wird false zurückgegeben.
  3. Deklarieren und definieren Sie die Funktion „generateCaptcha()“, die einen ganzzahligen Parameter entgegennimmt und einen Zeichenfolgenwert zurückgibt.
  4. Initialisieren Sie innerhalb der Funktion „generateCaptcha()“ eine Zeitvariable mit der Funktion „time()“ und starten Sie den Zufallszahlengenerator mit der Funktion „srand()“.
  5. Deklarieren Sie ein Zeichenarray, das alle in das CAPTCHA aufzunehmenden Zeichen enthält, und weisen Sie es einer char-Zeigervariablen zu.
  6. Generieren Sie eine zufällige CAPTCHA-Zeichenfolge der angegebenen Länge, indem Sie mithilfe der Funktion push_back() wiederholt zufällige Zeichen aus dem Zeichenarray an eine Zeichenfolgenvariable anhängen.
  7. Gibt die generierte CAPTCHA-Zeichenfolge zurück.
  8. Deklarieren Sie innerhalb der Funktion main() eine String-Variable mit dem Namen captcha und rufen Sie die Funktion genericCaptcha() mit einer Länge von 9 auf, um einen zufälligen CAPTCHA-String zu generieren.
  9. Drucken Sie die generierte CAPTCHA-Zeichenfolge auf der Konsole aus. 
     
CPP
// C++ program to automatically generate CAPTCHA and // verify user #include    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 
C#
using System; using System.Text; class GFG {  // Returns true if given two strings are same  static bool 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();  // Characters to be included  string chrs = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';  // Generate n characters from above set and  // add these characters to captcha.  StringBuilder captcha = new StringBuilder();  while (n-- > 0)  {  int index = rand.Next(62);  captcha.Append(chrs[index]);  }  return captcha.ToString();  }  // Driver code  static void Main(string[] args)  {  // Generate a random CAPTCHA  string captcha = GenerateCaptcha(9);  Console.WriteLine(captcha);  // Ask user to enter a CAPTCHA  Console.WriteLine('Enter above CAPTCHA: ');  string usr_captcha = Console.ReadLine();  // Notify user about matching status  if (CheckCaptcha(captcha usr_captcha))  Console.WriteLine('CAPTCHA Matched');  else  Console.WriteLine('CAPTCHA Not Matched');  } } 
JavaScript
// JavaScript program to automatically generate CAPTCHA and // verify user // Returns true if given two strings are same function checkCaptcha(captcha user_captcha) { return captcha.localeCompare(user_captcha) == 0; } // Generates a CAPTCHA of given length function generateCaptcha(n) { // Characters to be included const chrs = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; let captcha = ''; for (let i = 0; i < n; i++) { captcha += chrs[(Math.floor(Math.random() * chrs.length))]; } return captcha; } // Driver code function main() { // Generate a random CAPTCHA const captcha = generateCaptcha(9); console.log(captcha); // Ask user to enter a CAPTCHA const usr_captcha = prompt('Enter above CAPTCHA:'); // Notify user about matching status if (checkCaptcha(captcha usr_captcha)) console.log('CAPTCHA Matched'); else console.log('CAPTCHA Not Matched'); } main(); 

Ausgabe:  

CAPTCHA: cF3yl9T4 Enter CAPTCHA: cF3yl9T4 CAPTCHA Matched

Zeitkomplexität: An)
Raumkomplexität: O(1)

Quiz erstellen