一种基于汉字笔画的验证码生成技术

2016-10-10 05:16曹记东
关键词:字库笔画动画

曹记东

(陕西理工学院数学与计算机科学学院, 陕西 汉中 723000)



一种基于汉字笔画的验证码生成技术

曹记东

(陕西理工学院数学与计算机科学学院, 陕西汉中723000)

文章提出一种基于汉字笔画的验证码生成技术.该验证码生成技术利用GIF动态验证码的优点,采用笔画、汉字以及GIF动画提示,要求验证者在给出笔画中按顺序选出汉字的正确笔画,并从给出的汉字中选中正确的汉字,利用DES加密算法实现B/S通信的传输安全,有效防止OCR识别技术,提高验证码安全性,增强了用户的体验感.

验证码;GIF;笔画;安全性

网络安全越来越受到人们的重视,验证码的使用也越来越频繁.验证码形式多样[1-2].目前经常使用的验证码主要有以下5种:1)基于数字和字母的文本验证码; 2)基于视频内容的验证码; 3)基于声音的验证码;4)基于数学算术的验证码; 5)基于中文汉字的验证码[3-4].基于数字和字母的验证码容易受到攻击,基于视频和声音的验证码操作比较麻烦,对使用环境有较高的要求,基于数学算术的验证码要求用户有一定的数学运算和逻辑推理能力,使用受到一定限制,基于中文汉字的验证码输入较为麻烦,用户体验感不强[5].本文提出的基于汉字笔画的验证码兼顾了验证码的验证效率和安全性.

1 基于汉字笔画的验证码原理

1.1系统图解

基于汉字笔画的验证码功能主要有:系统生成动态验证码、用户提交验证信息、系统对用户提交信息进行验证并返回验证结果.其功能框图如图1所示.

图1 系统功能框图

系统的数据流图如图2所示.

图2 系统数据流图

1.2验证原理

基于笔画的动态验证码的验证主要分为以下几步:

(1)客户端请求登录页面

1)通过查询数据库获得字库中的总字数,然后在总数范围内随机得到一个编号,通过该编号得到一个汉字作为候选汉字中的待选汉字,再随机生成一个待选汉字的摆放位置,最后将待选汉字及其摆放位置存入session中.

2)依据字库总字数以及待选汉字的编号随机生成3个不重复且与待选汉字不同的干扰汉字,然后存入session中.

3)根据待选汉字的笔画数,确定所需要的干扰笔画的个数.利用待选汉字的编号在数据库中查询针对该汉字所设计的干扰笔画编号,使用随机算法从为待选汉字所设计的干扰笔画中筛选出一定数量的干扰笔画编入到集合中,得到干扰笔画集合并存入session中.

4)创建一个长度为8的集合,并将集合乱序.再创建一个集合记录待选笔画在乱序集合中的索引位置,将这两个集合都存入到session当中.

5)为满足DES加密算法的3个密钥需求,我们随机生成3个随机数存入到session当中.

(2)服务器端响应

首先应从session当中拿出客户端请求登录页面时放入session中存放的待选汉字.但由于本验证码中包含有多种元素,如GIF动画图片、候选汉字图片以及可供选择的汉字笔画,因此服务器需要依据请求资源名判断请求的是动画汉字还是笔画.

1)当请求为动画时,根据汉字实体中存放的相关信息在服务器中找到相关资源,并返回给浏览器.

2)当请求为汉字时,从session中拿出干扰汉字以及正确汉字位置,通过代码将干扰汉字以及正确汉字一并绘制到一张图片当中,其中正确汉字按照生成正确位置绘画[6],绘制完成后返回给浏览器.

3)当请求为笔画时,从session中拿出生成好的笔画编号和干扰笔画编号,从服务器中得到这8张笔画图片,通过代码将这8张图片合并成一张图片返回给浏览器.

2 基于汉字笔画的验证码实现

2.1模拟登录界面

为了证明本系统的可操作性,设计如下登录界面(如图3所示).若用户提交的验证信息能被服务器认可,即认为当前用户为合法用户而非恶意程序,则可完成登录,继续下一操作.

图3 模拟登录界面

基于汉字笔画的动态验证码包括多种元素,如动态GIF动画、候选汉字图片、待选笔画集合.这是通过分析和研究OCR技术识别的原理而得出的一种更安全、高效、方便使用并有利于推广的方案.

2.2笔画选择

基于笔画的动态验证码中包括汉字笔画验证.这要求用户根据GIF动画提示,在系统给出的笔画图片组中按顺序选出正确的笔画图片.用户可通过“后退”与“重置”按钮控制验证流程.

图4 笔画选择

笔画图片数组中除了待选笔画之外,还包含有干扰笔画.在系统字库中,每一个汉字包含有若干张干扰笔画图片,系统在生成笔画图片组的时候,将会随机从当前汉字对应的干扰笔画图片中“挑选”出y张干扰笔画图片(若当前汉字笔画数等于x,则y=8-x),并将选出的干扰笔画图片和待选笔画图片进行乱序处理,最终在客户端进行显示.

2.3汉字选择

基于笔画的动态验证码中还包括汉字验证.这要求用户观察GIF动画中的笔画,根据动画分辨并选出动画图片中“写出”的汉字.与笔画图片组类似,汉字图片组除了待选汉字以外,也包含3个干扰汉字选项.这是为了让机器无法直接获取验证码信息,更好地实现对验证码“人眼易分辨,机器难识别”的要求.

图5 待选字验证

3 结语

基于汉字笔画的动态验证码设计方案,主要具有以下几个特点:

1)静态向动态的转变

本验证码生成技术使用GIF动画作为验证图片,解决了用户仅通过简单的第三方接口就能轻易识别图像内容这一问题.

2)安全性较高

由于这个验证码系统采取两步验证,不仅需要按照GIF动画提示选出待选汉字,还需要按顺序选择该汉字的正确笔画.这样即便用机器识别出GIF图片中的内容,也很难按照笔画顺序在无规则随机生成的笔画位置中挑选出正确笔画与汉字.

3)通信过程采用DES加密算法

为保证B/S之间的安全通信,验证过程中的关键数据均采用加密算法配合随机密钥进行加密.基于汉字笔画的动态验证码是通过分析现有

验证码的弊端,结合对现代识别技术的学习与研究而提出的一种易生成、易理解、不易被机器识别、具有较高可靠性的新的动态验证码.它从多个方面对安全问题进行加强,包括使用多种元素实现验证过程,以及对B/S间的通信进行加密(信息在客户与服务器之间均以密文形式进行传递),适用于登录窗体、注册窗体或回复窗体等各种窗体.

4)若用户对验证码的安全性有更高的要求,可以通过对字库进行分级,从易到难逐步增加.对于所有用户可以初始化为中等难度级别,如果尝试多次登录验证失败,则逐步降低字库难度,并降低动画的帧率.如果用户在一定时间内,多次成功验证通过,则不断增加字库难度,并提高动画的帧率,以防恶意登陆.

[1]王晓鹏.验证码识别系统的研究及实现[D].广州:华南理工大学,2010.

[2]赵键.点模式匹配算法研究[D].长沙:国防科学技术大学, 2012.

[3]荀恩东,吕晓晨,安维华,等.面向书写教学的手写汉字图像笔画还原[J]. 北京大学学报(自然科学版),2015, 51(2): 241-248.

[4]孙华,张航.汉字识别方法综述[J].计算机工程,2010, 36(2):194-197.

[5]陈钦梧,彭小忠.新音形编码汉字输入法设计[J]. 计算机工程与应用,2014,50(1):36-40.

[6]刘敏,詹华年,梁晓辉,等.基于骨架图匹配的汉字变形技术[J].北京航空航天大学学报,2015,41(2) : 364-368.

(责任编辑穆刚)

A verification code generation technique based on strokes of chinese characters

CAO Jidong

(School of Mathematics and Computer Science, Shaanxi University of Technology, Hanzhong Shanxi 723000, China)

This paper proposes a verification code generation technique based on the strokes of Chinese characters, the verification code generation technique using the advantages of GIF dynamic verification code, considering strokes, Chinese characters and GIF animation tips, and the users were asked to select the correct Chinese character strokes and the correct Chinese characters from which were given, and the DES encryption algorithm was used to ensure B/S communication transmission security. Therefore the verification code generation technique can efficiently prevent the OCR recognition technique, improve the security of verification code, and enhance the user’s experience feeling.

verification code; graphic interchange format; stroke; security

2016-03-15

陕西理工学院校级项目(SLGKY13-47).

曹记东(1977—),男,河南周口人,讲师,硕士,主要从事计算机科学、信息安全与密码学方面的研究.

TP319

A

1673-8004(2016)05-0098-03

猜你喜欢
字库笔画动画
做个动画给你看
笔画相同 长短各异
——识记“己”“已”“巳”
No.2 喜茶联合汉仪字库推出微型书和书签
动画发展史
有趣的一笔画
我的动画梦
找不同
动画批评融入动画教育的思考
论计算机字库单字的著作权保护
——以方正诉宝洁案为例
一笔画