А ЦАПТЦХА (Потпуно аутоматизован јавни Тјурингов тест за раздвајање рачунара и људи) је тест којим се утврђује да ли је корисник човек или не.
Дакле, задатак је да генеришете јединствену ЦАПТЦХА сваки пут и да кажете да ли је корисник човек или не тражећи од корисника да унесе исту ЦАПТЦХА као што је генерисана аутоматски и проверавајући кориснички унос са генерисаном ЦАПТЦХА.
Примери:
CAPTCHA: x9Pm72se Input: x9Pm62es Output: CAPTCHA Not Matched CAPTCHA: cF3yl9T4 Input: cF3yl9T4 Output: CAPTCHA Matched
Скуп знакова за генерисање ЦАПТЦХА се чува у низу знакова цхрс[] који садржи (а-з А-З 0-9), стога је величина цхрс[] 62.
Да бисте генерисали јединствену ЦАПТЦХА сваки пут када се генерише насумични број коришћењем функције ранд() (ранд()%62) која генерише насумични број између 0 до 61 и генерисани случајни број се узима као индекс низа знакова цхрс[] тако генерише нови знак цаптцха[] и ова петља траје од н (ТЦАПЦХ) пута дужине ЦАПТЦХА.
алгоритам:
- Прво декларисајте и дефинишите функцију цхецкЦаптцха() која узима два параметра стринга и враћа логичку вредност.
- Унутар функције цхецкЦаптцха() упоредите два параметра стринга помоћу функције цомпаре() и вратите тачно ако су исти; у супротном врати фалсе.
- Декларисајте и дефинишите функцију генератеЦаптцха() која узима целобројни параметар и враћа вредност низа.
- Унутар функције генератеЦаптцха() иницијализујте временску променљиву помоћу функције тиме() и започните генератор случајних бројева помоћу функције сранд().
- Декларисајте низ знакова који садржи све знакове који ће бити укључени у ЦАПТЦХА и доделите га променљивој показивача знакова.
- Генеришите насумични ЦАПТЦХА стринг одређене дужине тако што ћете више пута додавати насумичне знакове из низа знакова у променљиву стринг помоћу функције пусх_бацк().
- Вратите генерисани ЦАПТЦХА стринг.
- Унутар функције маин() декларишете стринг променљиву под називом цаптцха и позовите функцију генератеЦаптцха() дужине 9 да бисте генерисали насумични ЦАПТЦХА стринг.
- Одштампајте генерисани ЦАПТЦХА стринг на конзоли.
// 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)
Креирај квиз