在本教程中,我们将讨论一个生成CAPTCHA并验证用户的程序。
为此,我们将为用户提供一个随机字符串,并要求他重新输入相同的字符串。然后,必须检查给定字符串和输入字符串是否匹配。
CAPTCHA应该是由az,AZ和0-9组成的完全随机的系统。
#include<bits/stdc++.h> using namespace std; //检查字符串是否相同 bool check_string(string &captcha, string &user_captcha){ return captcha.compare(user_captcha) == 0; } //生成一个随机字符串作为验证码 string gen_captcha(int n){ time_t t; srand((unsigned)time(&t)); char *chrs = "abcdefghijklmnopqrstuvwxyzABCDEFGHI" "JKLMNOPQRSTUVWXYZ0123456789"; string captcha = ""; while (n--) captcha.push_back(chrs[rand()%62]); return captcha; } int main(){ string captcha = gen_captcha(9); cout << captcha; string usr_captcha; cout << "\nEnter CAPTCHA : "; usr_captcha = "fgyeugs56"; if (check_string(captcha, usr_captcha)) printf("\nCAPTCHA Matched"); else printf("\nCAPTCHA Not Matched"); return 0; }
输出结果
nwsraJhiP Enter CAPTCHA : CAPTCHA Not Matched