什么是 CAPTCHA

来源:互联网 发布:cf彩虹哥淘宝 编辑:程序博客网 时间:2024/05/01 09:48
什么是 CAPTCHA?就是在许多网页窗体的最后,要你输入几个英文字母,确保你不是机器人的那个东西。CAPTCHA 的全名是「Completely Automated Public Turing test to tell Computers and Humans Apart」,或「全自动区分电脑与人类的图灵测试」,实作的方式很简单,就是问一个电脑答不出来,但人类答得出来的问题。

早期的 CAPTCHA 很简单,大多就是在一个比较杂乱的背景上有几个英文字母,要求使用者将字母写出来。但随着电脑判断、解析的算法越来越进步,创造 CAPTCHA 的这一方也不得不努力,将 CAPTCHA 设计得越来越复杂难明...直到连人类都快要识别不出来的地步 orz。

电脑识别图片一共有三个步骤:
 
  1. 消去背景
  2. 切割元素
  3. 辨认元素
现有的文字型 CAPTCHA 不外乎就是在这三个上面打转,举例来说:



上图的这个 EZ-Gimpy 产生的 CAPTCHA 就用了一个渐层的背景和扭曲的文字来让电脑辨识困难。事实上,以现代技术来说,这差不多是最容易破解的一种了 -- 电脑就是消去背景和辨认元素这两个部份最擅长,因此要让电脑辨识困难点,还必须要加上切割元素的困难度才行。


上图的这种 CAPTCHA 叫 reCAPTCHA,是一个使用率还蛮高的 CAPTCHA。reCAPTCHA 用的技术很有趣:它是去扫瞄古书,并从中找出电脑无法辨认出来的古字,加上一条增加切割元素困难度的曲线后,呈现给使用者。系统只知道两个字当中其中一个的答案,如果你答对了它知道的那个,那它就假设你是人类无误,并假设你的另外一个字也有答对,这样 reCAPTCHA 知道的字就又多一个了。


KCAPTCHA 则是让所有的字都黏在一起,让电脑无法正确地切割元素。


这是一个利用背景和前景的复杂度来增加辨试困难度的例子。不过总觉得这比扭曲的字还虐待人啊 = =。



虽然不多见,但也有些网站用的是动画的 CAPTCHA。这种对电脑来说几乎是不可能破解的,因为电脑很难知道哪个影格里的数据是正确的。当然,也不一定要靠文字才能做 CAPTCHA,像下面这个:



这个系统叫「KittenAuth」,顾名思议就是要你从九张可爱的动物中选出三张是猫咪的图来。这个利用的是电脑对没有固定模式的东西(像照片)的内容没辙的这点。另外一种 CAPTCHA 完全舍弃了图片,只问一个大概只有人类才答得出来的问题,例如:
  • 浴缸里装满了热__。
  • 瘾科技最帅的编辑是__。
之类的。看完一些比较正常的 CAPTCHA 之后,小姜也在网络上四处逛了逛,找看看有没有一些真的让人头昏眼花的 CAPTCHA。下面几个大家回答得出来吗?








「请以 PGN 格式,回答执白者的最佳下一步」




0 0