تصویر CAPTCHA

CAPTCHA مخفف عبارت “Completely automated public Turing to tell computers and humans apart" است. به این معنی که : برنامه های که تفاوت بین ماشین و انسان را بوسیله استفاده از یک سری آزمون ها، تشخیص می دهد. آزمونی که تقریباً تمام افراد می توانند آن را بگذرانند ولی برنامه های کامپیوتری قادر به این کار نیستند.
شنبه، 11 آبان 1387
تخمین زمان مطالعه:
موارد بیشتر برای شما
تصویر CAPTCHA
تصویر CAPTCHA
تصویر CAPTCHA

مقدمه :

CAPTCHA مخفف عبارت “Completely automated public Turing to tell computers and humans apart" است. به این معنی که : برنامه های که تفاوت بین ماشین و انسان را بوسیله استفاده از یک سری آزمون ها، تشخیص می دهد. آزمونی که تقریباً تمام افراد می توانند آن را بگذرانند ولی برنامه های کامپیوتری قادر به این کار نیستند.
شما مطمئناً با این چنین آزمونها زمان باز کردن یک Mail box جدید و یا یک حساب forumمواجه شده اید. این فرم ممکن است شامل تصویر پیچ خورده ای باشد، درست شبیه به همان تصویری که در بالا ملاحظه کرده اید، که در نهایت شما مستلزم هستید که در قسمت text box آن حروف و اعدادی را که می بینید تایپ کنید.
هدف از این ایده جلوگیری از اسپمرها، در استفاده از رباتهای وب در ساختن mail ها ( برای ارسال Spam)، ثبت کردن نظرات و یا ورودی های Guestbook (دفترچه ای که افراد می توانند نام و مشخصات به همراه نظراتشان را در آن قرار دهند) که همراه با پیام های Spam هستند، می باشد. متنی که در داخل تصویر آمده معمولاً بهم ریخته و پیچ خورده است تا OCR یا Optical Character Reader ها نتوانند آن را بخوانند. Hotmail, PayPal, Yahoo و تعداد دیگری از وب سایتها از این روش استفاده می کنند.
این مقاله روش ساخت چنین تصویری را درصفحات وب ASP.net نشان می دهد.
قبل از اینکه از این تکنیک استفاده کنید، باید این مسئله را مد نظر داشته باشید که این روش میتواند چه تأثیراتی بر قابلیتهای وب سایت شما برای افرادی که ناتوانایی جسمی دارند داشته باشد. برای مثال افرادی که نابینا هستند به چه شکل می توانند این اعداد و حروف را تشخیص دهند؟. PayPal سعی کرد که این مشکل را با اضافه کردن لینکی به یک فایل صوتی، که این صوت پخش شده همان ارقام و حروفی هستند که در متن نوشته شده اند، این مشکل را حل کند. پس شخص نابینا می تواند با گوش دادن به این فایل صوتی اعداد و حروف را جایگزین کند.
کدی که در زیر آمده فقط همان روش اول را توضیح می دهد یعنی استفاده از یک تصویر.

استفاده از کدها :

فایل فشرده ای که لینک آن در بالا آمده حاوی منبع برای یک کلاس و دو صفحه وب می باشد. برای استفاده از آن کافی است یک پروژه جدید وب باز کرده و تمام آنها را به آن اضافه کنید.

فایلها :

- CaptchaImage.cs : مشخص کننده CapchaImage که در حقیقت تصویر را می سازد.
- Default.aspx, Default.aspx.cs : نمونه ای از فرم وب.
- JpegImage.aspx, JpegImage.aspx.cs : صفحه وبی که طراحی شده تا یک تصویر Jpeg را به خروجی بدهد به جای اینکه به HTML بدهد.
اجازه دهید نگاهی به هر جزء و اهدافش بیندازیم :
شئ CaptchaImage یک تصویری می سازد که پارامترهایی برای متنی که می خواهد ارسال شود می فرستد. برای مثال ابعاد و فونت تصویر.
قلب تمام این کدها متد، GenerateImage() می باشد که در زیر آمده است. این متد یک تصویر bitmap با طول و عرض خاصی می سازد. این متد از طریق سازنده CaptchaImage فراخوانی شده، پس تصویر درست زمانی که شما یک مثالی از شئ ساختید، آماده است.
برای ساختن تصویر، ما اول پس زمینه را بوسیله یک برس، هاشور میزنیم( هرچقدر تصویر کثیفتر باشد، تشخیص آن از طریق برنامه OCR سختتر می باشد).
برای ساختن متنی که با تصویر مرتبط باشد، ما اول با یک قلم با سایزی که مبنای آن برطول و عرض تصویر است و با استفاده از متد Graphics.MeasureString() برای پیدا کردن ابعاد نهایی از متن نقاشی شده شروع می کنیم. در صورتی که متن، از ابعاد تصویر تجاوز کند، ما سایز قلم را کم خواهیم کرد و دوباره امتحان می کنیم و به همین ترتیب ادامه می دهیم تا سایز مناسب را پیدا کنیم.

تصویر CAPTCHAتصویر CAPTCHAتصویر CAPTCHA

زمانی که فونت را تنظیم کردیم باید GraphicsPath() را، که در حقیقت متن را به تعدادی از خطوط و خطوط خمیده تبدیل می کند، مشخص کنیم. متن می تواند از طریق متد GraphicsPath.Warp() همراه با مقادیر تصادفی که تولید شده، خمیده شود.
برای تکمیل این خمیده گی، ذرات کوچک به طور تصادفی روی تصویر پراکنده شده است. شما می توانید از حالتهای دیگر آن نیز استفاده کنید ولی فراموش نشود که باید برای انسانها قابل درک باشد. (مثلاً برای کسانی که اختلال بینایی دارند).
Default.aspx
این یک مثال ساده از فرم وب است که تنها شامل چند المان پایه است، برای مثال یک تگ <IMG> برای تصویر، یک Text Box، و یک دکمه ثبت.

تصویر CAPTCHA

توجه داشته باشید که خصوصیت SRC از تگ <IMG> به فرم وب JpegImage.aspx اشاره دارد.
کدهای پشتیِ (code behind) Default.aspx به سادگی و به صورت تصادفی متنهایی برای تصویر انتخاب کرده و ارزیابی می کند که آیا این متن توسط کاربر زمانی که فرم به ثبت رسیده وارد شده یا خیر؟ کلید این کار ذخیره کردن رشته در قسمت شئ Session می باشد.

تصویر CAPTCHAتصویر CAPTCHA

دلیل اینکه رشته را در Session ذخیر کرده ایم این است که از طریق JpegImage.aspx قابل دسترسی باشد.

JpegImage.aspx :

برای این فرم وب، هیچ HTMLی نیاز نیست. در عوض کدها یک تصویر Jpeg می سازند.
در کدهای پشتی، در مرحله اول ما یک شئ CaptchaImage با استفاده از متنی که از شئ session بازگرفته شده، می سازیم. که این یک تصویر bitmap برای ما می سازد.

تصویر CAPTCHA

آخرین مرحله پس گرفتن تصویر bitmap از CaptchaImage.Image و نوشتن آن درخروجی HTTP در قالب JPEG می باشد. خوشبختانه، متد Save() از شئ bitmap، همه چیز را ساده می سازد.

معرفي سايت مرتبط با اين مقاله


تصاوير زيبا و مرتبط با اين مقاله


تبلیغات در راسخون
نظرات کاربران
ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
موارد بیشتر برای شما
آیا اردن به پایگاه مدیریت جنگ علیه ایران تبدیل شده است؟
play_arrow
آیا اردن به پایگاه مدیریت جنگ علیه ایران تبدیل شده است؟
قلعه‌نویی علت دعوت نکردن قایدی را اعلام کرد
play_arrow
قلعه‌نویی علت دعوت نکردن قایدی را اعلام کرد
گاف عجیب سخنگوی جدید کاخ سفید؛ ترامپ را شوهرش صدا زد! + فیلم
play_arrow
گاف عجیب سخنگوی جدید کاخ سفید؛ ترامپ را شوهرش صدا زد! + فیلم
تصاویری تازه از مسعود کیمیایی در جشن رونمایی از یک آلبوم موسیقی + فیلم
play_arrow
تصاویری تازه از مسعود کیمیایی در جشن رونمایی از یک آلبوم موسیقی + فیلم
آیت‌الله مروی: دو بار با رهبر انقلاب دیدار کردم/ حالشان بسیار خوب بود + فیلم
play_arrow
آیت‌الله مروی: دو بار با رهبر انقلاب دیدار کردم/ حالشان بسیار خوب بود + فیلم
ترامپ: به زلنسکی و پوتین برای پایان دادن به جنگ کمک می‌کنیم + فیلم
play_arrow
ترامپ: به زلنسکی و پوتین برای پایان دادن به جنگ کمک می‌کنیم + فیلم
ترامپ: به‌زودی درباره ایران تصمیمی خواهیم گرفت + فیلم
play_arrow
ترامپ: به‌زودی درباره ایران تصمیمی خواهیم گرفت + فیلم
ترامپ: ممکن است از اردوغان بخواهم در حمله به یمن مشارکت کند + فیلم
play_arrow
ترامپ: ممکن است از اردوغان بخواهم در حمله به یمن مشارکت کند + فیلم
رئیس جمعیت هلال احمر: برای هر سناریو از جمله حملات هسته‌ای و شیمیایی آماده‌ایم
play_arrow
رئیس جمعیت هلال احمر: برای هر سناریو از جمله حملات هسته‌ای و شیمیایی آماده‌ایم
عوارض گوش پاک‌کن؛ خطرات استفاده و روش صحیح تمیز کردن گوش + فیلم
play_arrow
عوارض گوش پاک‌کن؛ خطرات استفاده و روش صحیح تمیز کردن گوش + فیلم
شعار علیه لیونل مسی در تجمعات شبانه + فیلم
play_arrow
شعار علیه لیونل مسی در تجمعات شبانه + فیلم
فن زیبا و ۵ امتیازی محمد کمالی در کشتی فرنگی زیر ۲۳ سال جهان + فیلم
play_arrow
فن زیبا و ۵ امتیازی محمد کمالی در کشتی فرنگی زیر ۲۳ سال جهان + فیلم
عمرو موسی: تصور فروپاشی ایران اشتباه بود + فیلم
play_arrow
عمرو موسی: تصور فروپاشی ایران اشتباه بود + فیلم
روایت لحظات دلهره‌آور از واکنش شهید لاریجانی پس از بمباران بیت رهبری + فیلم
play_arrow
روایت لحظات دلهره‌آور از واکنش شهید لاریجانی پس از بمباران بیت رهبری + فیلم
رسانه نمایش خانگی و مسأله هنجارشکنی؛ از آسیب‌شناسی تا راهکارهای اصلاح رفتارهای ضدارزشی
رسانه نمایش خانگی و مسأله هنجارشکنی؛ از آسیب‌شناسی تا راهکارهای اصلاح رفتارهای ضدارزشی