CAPTCHA je Turingův test, který se na webu používá ve snaze automaticky odlišit skutečné uživatele od robotů.
CAPTCHA je akronym pro „completely automated public Turing test to tell computers and humans apart“, tedy „plně automatický veřejný Turingův test k odlišení počítačů a lidí“. Test spočívá zpravidla v zobrazení obrázku s deformovaným textem, přičemž úkolem uživatele je zobrazený text opsat do příslušného vstupního políčka. Předpokládá se, že lidský mozek dokáže správně rozeznat i deformovaný text, ale internetový robot při použití technologie OCR nebude schopen text správně rozpoznat.
Někdy je název vysvětlován jako pouhá zkratka „CAPTure CHAracters“ - zachyť (přečti) ty znaky.
Důvod, proč se CAPTCHA vůbec používá, je ten, že bez něj by se do různých diskusních fór pomocí spamových robotů dostalo velké množství komentářového spamu, který ve velké míře chrlí některé spamové servery.
Nevýhodou obrázkové CAPTCHA je nepřístupnost pro zrakově postižené uživatele.[1] Protože se navíc stále zdokonalují metody automatického rozpoznávání CAPTCHA roboty, nástroje pro generování CAPTCHA generují stále více zdeformované texty – i pro uživatele, který je schopen vidět takovou CAPTCHA je pak obtížné, někdy dokonce nemožné, správně rozluštit, jaký text se v obrázku nachází.
Některé metody CAPTCHA se snaží nepřístupnost obrázků obejít, nebo používat CAPTCHA bez obrázků. Google tak například nabízí možnost nechat si text na obrázku strojově přečíst.
Nečitelnosti obrázků lze předejít jejich horizontálním rozdělením a následným pozicováním pomocí CSS. Takto rozdělený obrázek nemusí obsahovat žádné deformace ani ochranné prvky snižující jeho čitelnost, a přesto je pro roboty zcela nečitelný.[2]
Jiné metody zase po uživateli požadují odpověď na jednoduchou otázku (přičemž je možné otázky automaticky generovat, nebo lze použít předem připravenou sadu otázek). Uživatel tedy musí správně odpovědět např. na otázku „Kolik je 2 + 3?“ nebo „Jaký den následuje po úterý?“.
Tyto metody lze i kombinovat - ony „2 + 3“ lze zobrazit v obrázku nebo je možné například zobrazit posloupnost znaků a písmen ve dvou nahodilých barvách a uživatele instruovat, aby opsal jen znaky jedné barvy. Tyto instrukce mohou být též vygenerovány v obrázku (někdy dokonce se záměrnými chybami, které opět člověk dešifruje snadněji než robot), takže aby se robot mohl autentizovat jako lidský uživatel, musel by umět rozpoznat, že jde o úkol, jehož zadání je ve formě obrázku; přečíst tento úkol, porozumět mu a správně ho splnit. K něčemu takovému je zapotřebí značná část umělé inteligence, kterou roboti zatím nedisponují, a tak se tento způsob považuje za dostatečný. Ovšem již se to stává problémem.[3]