[发明专利]一种动态验证码生成方法及装置有效
申请号: | 201510148485.3 | 申请日: | 2015-03-31 |
公开(公告)号: | CN104700022B | 公开(公告)日: | 2018-08-07 |
发明(设计)人: | 尹非凡 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F21/36 | 分类号: | G06F21/36 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 马敬;项京 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态验证 验证码 验证码字符 码生成 环形缓冲区 帧图像 绘制 时间等待 随机生成 随机选择 存储 应用 | ||
1.一种动态验证码生成方法,其特征在于,包括:
按照预设的验证码背景生成周期,随机生成验证码背景,并将生成的验证码背景按照生成时间的先后顺序依次存储在环形缓冲区中;
接收动态验证码生成请求;
在接收到所述动态验证码生成请求之后,确定所要使用的验证码字符组,并从所述环形缓冲区中随机选择M个验证码背景,生成N个带有所选择的验证码背景的帧图像,其中,每个帧图像中均带有且仅带有M个验证码背景中的一个验证码背景,所述M个验证码背景中的任何一个验证码背景均至少在所述N个帧图像中的一个帧图像中存在,M≤N,N为预设的待生成的动态验证码的帧图像个数;
将所确定的验证码字符组划分为N个部分;
将所划分的验证码字符组的N个部分分别绘制在所生成的带有验证码背景的N帧图像中;
根据绘制完验证码字符组N个部分的N帧图像,生成动态验证码;
其中,所述N帧图像为N个带有所选择的验证码背景的帧图像。
2.根据权利要求1所述的方法,其特征在于,所述按照预设的验证码背景生成周期,随机生成验证码背景,包括:
调用第一线程,按照预设的验证码背景生成周期,随机生成验证码背景;
和/或;
所述将所划分的验证码字符组的N个部分分别绘制在所生成的带有验证码背景的N帧图像中,包括:
调用第二线程,将所划分的验证码字符组的N个部分分别绘制在所生成的带有验证码背景的N帧图像中。
3.根据权利要求1所述的方法,其特征在于,所述将生成的验证码背景按照生成时间的先后顺序依次存储在环形缓冲区中,包括:
将新生成的验证码背景存储在环形缓冲区的末尾。
4.根据权利要求1所述的方法,其特征在于,所述确定要使用的验证码字符组,包括:
从预设的验证码字符集中随机选取X个验证码字符,将所选取的X个验证码字符,确定为所要使用的验证码字符组,其中,X为预设的验证码字符组中验证码字符的数量。
5.根据权利要求1所述的方法,其特征在于,生成的所述动态验证码,为:
GIF格式的图片,或
FLV格式的动画或SWF格式的动画。
6.一种动态验证码生成装置,其特征在于,包括:验证码背景生成模块、验证码背景存储模块、请求接收模块、字符组确定模块、帧图像生成模块、划分模块、绘制模块和动态验证码生成模块,其中,
所述验证码背景生成模块,用于按照预设的验证码背景生成周期,随机生成验证码背景;
所述验证码背景存储模块,用于将所述验证码背景生成模块生成的验证码背景按照生成时间的先后顺序依次存储在环形缓冲区中;
所述请求接收模块,用于接收动态验证码生成请求;
所述字符组确定模块,用于在所述请求接收模块接收到所述动态验证码生成请求之后,确定所要使用的验证码字符组;
所述帧图像生成模块,用于在所述请求接收模块接收到所述动态验证码生成请求之后,从所述环形缓冲区中随机选择M个验证码背景,生成N个带有所选择的验证码背景的帧图像,其中,每个帧图像中均带有且仅带有M个验证码背景中的一个验证码背景,所述M个验证码背景中的任何一个验证码背景均至少在所述N个帧图像中的一个帧图像中存在,M≤N,N为预设的待生成的动态验证码的帧图像个数;
所述划分模块,用于将所述字符组确定模块确定的验证码字符组划分为N个部分;
所述绘制模块,用于将所述划分模块划分的验证码字符组的N个部分分别绘制在所生成的带有验证码背景的N帧图像中;
所述动态验证码生成模块,用于根据所述绘制模块绘制完验证码字符组N个部分的N帧图像,生成动态验证码;
其中,所述N帧图像为N个带有所选择的验证码背景的帧图像。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510148485.3/1.html,转载请声明来源钻瓜专利网。