现在的验证码存在着一对矛盾,要么是容易被破解,比如一般的数字、文字验证码;要么是人也容易出错,或难以操作,比如图形验证码,在买火车票的12306网站就常被用户因图形验证码难以识别而吐糟,而象拖动滑块验证码,对于笔记本电脑的触摸板操作起来就不太容易。
而且这些验证码还有一个问题,就是对盲人朋友很不友好。盲人朋友现在依靠一些软件帮助,上一般的网站问题不大了,但一个很大的拦路虎就是验证码,必须靠争渡识图这样的软件,通过网络把验证码截图给其它网友,让其它网友输入验证码,然后软件用语音读出来让盲人朋友知道。有些网站的验证码考虑到这个问题,可以把数字、文字验证码读出来,很人性化。但现在的语音识别软件很厉害,如果验证码能读出来,那么破解起来也就很容易。而像图形、拖动滑块这样的验证码,盲人朋友就一点办法都没有了。(笔者作为争渡识图志愿者,已累计在线9778.13小时,为盲人朋友累计看过42659张验证码,排在全国争渡识图志愿者第7名。想为盲人朋友服务的,可加QQ群:)
有没有办法解决所有这些问题呢?从理论上说是完全可能的,因为有很多事情,对于我们人是很容易做到的,但机器做起来就很难,比如对语言的理解,所以通过人工智能的语义知识库也许就能很好解决这个问题,即创造出语义验证码。(关于语义知识库参见)
语义知识库的基本结构为:
主词:飞机
相关词:航空、机场、飞行员、民航、机票、战斗机……
也就是说,有了这个知识库,机器就能像我们人一样,从意思上知道一个词与哪些词有关系。于是我们可以利用其做出一个人很容易明白,但机器却很难懂的语义验证码。
其基本原理为,从语义知识库中随机选取一个词,比如“飞机”,再随机选取一个它的相关词,比如“机场”,然后从知识库中随机选取若干个其它词,也就是非相关词,组合成验证码,基本形式如下:
1.苹果、2.大米、3.互联网、4.机场、5.拖鞋、6.桌子
请输入以上词中与“飞机”关系最大的编号:
很显然,我们人一看就知道答案应该是“4”,但机器不懂词的含义,它就无法破解了。
可能有些聪明的朋友会发现,机场和飞机两个词中都有个“机”字,而其它的词没有,这会不会是个容易被破解的漏洞呢?
其实这并不是个大问题,因为很多相关词并没有相同的字,比如民航与飞机就没有相同的字。另一方面,可用技术手段进一步堵住这一漏洞,即选出一些有相同字却不相关的词,放到候选词中,比如上面这个例子,可以放入手机、机器等,以此来迷惑破解软件。而要做到这一点,技术上并没有难度。
这对盲人朋友也是友好的,因为把验证码的内容完全读出来,即使机器用语音识别了,它也不知道是哪个,因为它仍然不能理解这些词的意思,所以也就无从破解。而盲人朋友听了后,就会知道验证码的正确答案。
为进一步增加破解难度,还可以放入多个相关词,比如还是上面的例子,候选词如下:
1.苹果、2.民航、3.互联网、4.机场、5.拖鞋、6.桌子
答案为:24。
这时可提醒用户直接键入数字,不需要分隔符。
但这样可能会降低对盲人朋友的友好性,不过可以提醒他们有多个相关词,要注意听。
由于这个知识库是通过机器无监督自动学习来建立的,每时每刻都在自动搜集网上内容,如新闻等,不断学习新的知识,因此这个库非常庞大,知识异常丰富,很多词可能用过一次,很久都不会再用第二次,里面还会有很多非常规词的短语,例如“房子是用来住的”与“房地产”有关、“水果洗干净吃”与“健康”有关、“有害健康”与“吸烟”有关等等,这些也都从客观上给破解带来了很大难度。
如果您对投资这个项目有兴趣,可以与我联系: