logo

Програм за генерисање ЦАПТЦХА и верификацију корисника

А ЦАПТЦХА (Потпуно аутоматизован јавни Тјурингов тест за раздвајање рачунара и људи) је тест којим се утврђује да ли је корисник човек или не.
Дакле, задатак је да генеришете јединствену ЦАПТЦХА сваки пут и да кажете да ли је корисник човек или не тражећи од корисника да унесе исту ЦАПТЦХА као што је генерисана аутоматски и проверавајући кориснички унос са генерисаном ЦАПТЦХА.
Примери: 

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

Скуп знакова за генерисање ЦАПТЦХА се чува у низу знакова цхрс[] који садржи (а-з А-З 0-9), стога је величина цхрс[] 62. 
Да бисте генерисали јединствену ЦАПТЦХА сваки пут када се генерише насумични број коришћењем функције ранд() (ранд()%62) која генерише насумични број између 0 до 61 и генерисани случајни број се узима као индекс низа знакова цхрс[] тако генерише нови знак цаптцха[] и ова петља траје од н (ТЦАПЦХ) пута дужине ЦАПТЦХА.

алгоритам:



  1. Прво декларисајте и дефинишите функцију цхецкЦаптцха() која узима два параметра стринга и враћа логичку вредност.
  2. Унутар функције цхецкЦаптцха() упоредите два параметра стринга помоћу функције цомпаре() и вратите тачно ако су исти; у супротном врати фалсе.
  3. Декларисајте и дефинишите функцију генератеЦаптцха() која узима целобројни параметар и враћа вредност низа.
  4. Унутар функције генератеЦаптцха() иницијализујте временску променљиву помоћу функције тиме() и започните генератор случајних бројева помоћу функције сранд().
  5. Декларисајте низ знакова који садржи све знакове који ће бити укључени у ЦАПТЦХА и доделите га променљивој показивача знакова.
  6. Генеришите насумични ЦАПТЦХА стринг одређене дужине тако што ћете више пута додавати насумичне знакове из низа знакова у променљиву стринг помоћу функције пусх_бацк().
  7. Вратите генерисани ЦАПТЦХА стринг.
  8. Унутар функције маин() декларишете стринг променљиву под називом цаптцха и позовите функцију генератеЦаптцха() дужине 9 да бисте генерисали насумични ЦАПТЦХА стринг.
  9. Одштампајте генерисани ЦАПТЦХА стринг на конзоли. 
     
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(); 

Излаз:  

CAPTCHA: cF3yl9T4 Enter CAPTCHA: cF3yl9T4 CAPTCHA Matched

Временска сложеност: О(н)
Сложеност простора: О(1)

Креирај квиз