برنامه ساخت CAPTCHA و اعتبارسنجی کاربر — راهنمای کاربردی
در این مطلب، روش نوشتن برنامه ساخت CAPTCHA و اعتبارسنجی کاربر مورد بررسی قرار گرفته است.
کپچا چیست؟
کپچا (CAPTCHA) سرنامی برای عبارت «آزمون همگانی کاملاً خودکارشدهٔ تورینگ برای مجزا کردن انسان و رایانه» (Completely Automated Public Turing test to tell Computers and Humans Apart) است. کپچا آزمونی برای تشخیص آن است که کاربر انسان است یا نه (ربات). بنابرین، هدف تولید کپچاهای یکتایی است که صرفا توسط کاربر انسانی قابل تشخیص باشند و بتوانند کپچای صحیح را وارد کنند و رباتها امکان آن را نداشته باشند. همچنین، باید امکان اعتبارسنجی اینکه کپچا به درستی وارد شده است نیز وجود داشته باشد. مثالی در همین رابطه در ادامه آمده است.
CAPTCHA: x9Pm72se
Input: x9Pm62es
Output: CAPTCHA Not Matched
CAPTCHA: cF3yl9T4
Input: cF3yl9T4
Output: CAPTCHA Matched
مجموعه کاراکترها برای تولید کپچا در آرایهای به نام chrs[] ذخیره شدهاند که حاوی اعداد از ۰ تا ۹ (۹-۰) و حروف الفبای کوچک و بزرگ انگلیسی (a-z و A-Z) است. بنابراین، اندازه آرایه chrs[] برابر با ۶۲ است. برای تولید یک کپچای یکتا در هر بار، یک عدد تصادفی با استفاده از تابع rand() تولید میشود؛ این تابع (rand()%62) یک عدد تصادفی را بین ۰ تا ۶۱ تولید میکند. عددتصادفی تولید شده به عنوان اندیس برای کاراکتر در آرایه chrs[] به کار میرود؛ بدین ترتیب، یک کاراکتر جدید از captcha[] را تولید میکند و این حلقه، n (طول کپچا) بار اجرا میشود تا CAPTCHA با طول داده شده را تولید کنند.
// 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;
}
خروجی قطعه کد بالا به صورت زیر است.
CAPTCHA: cF3yl9T4
Enter CAPTCHA: cF3yl9T4
CAPTCHA Matched
اگر این مطلب برای شما مفید بوده است، آموزشها و مطالب زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامه نویسی پایتون
- آموزش پایتون (Python) | برنامه نویسی پایتون مقدماتی
- مجموعه آموزشهای برنامهنویسی
- آموزش پایتون (Python) — مجموعه مقالات جامع وبلاگ فرادرس
- زبان برنامه نویسی پایتون (Python) — از صفر تا صد
- آموزش اینترنت اشیا با پایتون (Python IoT) | گام به گام و به زبان ساده
- ۲۰ سایت آموزش آنلاین پایتون | راهنمای شروع یادگیری
منبع [+]
مجموعه: برنامه نویسی برچسب ها: Captcha, ایجاد CAPTCHA برای فرم ها, برنامه ساخت کپچا, روش ساخت کپچا, کپچا, نوشتن برنامه کپچا