· ·设为首页 ·加入收藏 ·网站地图 ·会员中心 ·取回密码·
您现在的位置: 四川省达川中学 >> 文章中心 >> 资源库 >> 海量资源 >> 大千世界 >> 文章正文 今天是:
为什么有的验证码是纯英文、有的是纯数字、有的是纯汉字?有什么讲究吗?
作者:www    文章来源:www    点击数:1090    更新时间:2013-1-8    
    ★★★ 【字体:

为什么有的验证码是纯英文、有的是纯数字、有的是纯汉字?有什么讲究吗?
验证码是网站无法判定恶意行为的情况下不得已采用的手段,对普通用户的干扰很大,实属无奈之举 ,不到万不得已不应采用。就算用了,在我国国情下,效果也不见得有预期的好。验证码本质而言是一种图灵测试,目的在于区分人和机器。这里暗含的假设是人工成本更高,恶意行为多由机器自动化完成。这个假设只能说是部分成立,因为在人工非常廉价的地方【比如我国和印度】只要付出少许的成本就可以使用庞大的「脑计算云」(Brain Computing Cloud)资源,并行计算解决连最先进的电脑和算法都棘手的模式识别问题。Amazon 的 Mechanical Turk 算是比较著名的「脑计算云」的产品化案例吧,国内的「水军」亦是一例应用。面对这样的「人脑计算」,验证码这种基于图灵测试的判别系统就完全无效了。

说了那么多验证码的不是,如果还是要用的话,要注意几个方面的问题:

验证码的形式。最基础的形式是照着图片输入字符,但如果你的用户里面有盲人或者其他视觉障碍的用户【比如色盲】怎么办?这一点国内的大部分验证码用例都没有考虑,也许和国内整个环境都不注重残障人士的利益有关。欧美采用验证码机制的网站很多都提供了基于声音的替代方案。【当然如果你要问遇到视觉听力双重障碍的用户怎么办……这我也没辙了】

字符集的选择。题目中问的就是这个问题。这个问题很常见,也是不少用户抱怨的点。有几个因素要考虑。首先是字符集的大小,这直接关系到被 OCR 的难易程度。最简单的方案是选择数字加字母,不过这也是最容易被 OCR 的选择,网上能找到比较成熟的 OCR 方案破解,从技术上讲不是太好。加入一些非主流的元素可以部分缓解这个问题,比如至少中文的 OCR 方案不如西文的成熟。

选择汉字的话会有一些问题,比如用户不知道如何输入汉字的时候该怎么办?输入汉字对于一些上了年纪且刚接触电脑的用户来说并不容易。还有,用户所用的电脑没有中文输入法怎么办?你可能会觉得这怎么可能?简单的例子,国外留学生在学校用图书馆里的公用电脑是没有办法输入中文的。选择简体字还是繁体字呢?如果是简体字,那港台繁体用户又怎么办?此外,汉字还牵涉到编码的问题,在处理用户提交的数据的时候网页又要考虑好编码方式的正确处理。这些都是很现实的问题需要考虑。

确定好字符集后,还要考虑从字符集里面去掉一些容易混淆的字符。如果字体选择不当,在验证码生成过程中进行一些变形处理后,很多组合的辨识度不高,容易混淆出错,比如 1/I/l 和 o/O/0 组合。汉字也有类似的问题,比如「日/曰」、「士/土」。这些都需要仔细设计才能尽量减少验证码对正常用户带来的困扰。

验证码的变形处理和背景干扰也有很大的讲究。变形的越夸张、背景干扰越严重,用户越有可能看不清楚无法辨识。但简单的变形处理又容易被 OCR 破解。这个方向上变量太多,没法展开说。相信大家都遇到过那种根本无法辨识的图片,非常抓狂,体验很糟糕。

最后再次重申一下我之前的观点:验证码的效果有限,且对正常用户的干扰太严重,一定要慎用。如果有人成心要来搞你,验证码是防不住的,大不了直接上人肉破解,也花不了多少钱。务实的说,在现今的互联网环境下,验证码只能是防防业余水平的破坏者,所以也不用做得特别复杂……

文章录入:sanzyh    责任编辑:sanzyh 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)