查看文章 |
最近看到群里有人讨论小榕出的新软件Digitize CAPTCHA,一个验证码识别的软件(http://www.netxeyes.com/DC.rar)。正好这些日子一直在关注验证码这一块儿,因此去小榕的论坛上看了一下功能简介和使用方法。根据论坛上网友的提问和小榕的回答 验证码的英文CAPTCHA (Completely Automated Turing Test To Tell Computers and Humans Apart),是为区别对方到底是人还是计算机程序而设置的一种验证措施。目前广泛的应用于:防止Blog里的垃圾回复 / 保护网站注册 / 保护Email地址不被机器爬虫收集 / 在线调查 / 避免字典攻击 / 阻碍搜索引擎爬虫。由于Bot类的程序出现的历史不是很长,验证码真正的大范围使用起源于1999-2000年Yahoo的账号注册。Yahoo曾经和CMU联合成立了一个gimpy项目,用来探索什么样的技术能够防止程序识别字符。Berkley和sfu的一个视觉研究小组有针对性的设计出识别gimpy的算法,对简单的gimpy字符识别率达到92%,对于复杂的gimpy字符识别率达到33% (http://www.cs.sfu.ca/~mori/research/gimpy/ ). 当然识别和反识别的算法还在不断的搏斗中。 一般来说,验证码的设计需要遵循两个原则: 对于想设计破解验证码算法的人,至少应该掌握:高等数学基本课程、数字信号处理相关算法、模式识别相关算法、人工智能相关算法等等。 上升到更高的一个层次,验证码实际上是模式识别或者人工智能的一个考验,对于攻击者和科研者双方是一个双赢的过程。如果攻击者能够破解任意难度的验证码,就说明计算机程序完全可以解决人工智能的难题,图灵测试成立。可惜目前的现状,人工智能的算法远达不到人类5岁儿童的能力,人类对自身的认识远远不够,计算机对错误的容忍能力太差。不知道哪一天给计算机一幅图像,计算机就能识别出“这是一件衣服”、“这是一个香蕉”、“两个人在交谈”…… 感兴趣的人可以访问以下资源:
|