一种基于图片数据加密索引的图形验证方法与流程

文档序号:15151847发布日期:2018-08-10 21:11阅读:396来源:国知局

本发明涉及一种图形验证方法,尤其涉及一种基于图片数据加密索引的图形验证方法。



背景技术:

目前,基于坐标编号的图形验证过程是在服务器端把图片、图片对应的词、以及坐标编号一一映射,通过给用户展示n张图片,并要求用户根据词义从图中找出相应的图片,并把图片对应的坐标编号传给服务器进行验证。当把坐标编号传递给服务器验证时,是显示给服务器传递选中图片的坐标编号,并没有对坐标编号作任何处理。这种基于坐标编号的图形验证方式直接显示给服务器传递用户选择的坐标编号,这样很容易被找到该验证码的实现原理及规律,从而很容易实现用机器模拟人的操作进行大量重复的请求。



技术实现要素:

本发明的目的在于提供一种基于图片数据加密索引的图形验证方法,以期能提供不容易被掌握其原理和规律的图形验证方法,加大人为的破解难度,提升验证码的安全性,从而达到有效防止大量重复请求、机器人暴力访问的情况。

本发明通过下述技术方案实现:

一种基于图片数据加密索引的图形验证方法,包括以下步骤:

(1)服务器端建立图片库,并建立图片与图片词的一一对应关系;

(2)客户端从服务器端获得给用户展示的n张图片和目标图片词,并按给出的目标图片词点击图片;

(3)提取用户点击的图片的数据,并对提取的图片数据进行md5加密,得到与点击图片对应的字符串;

(4)使用md5加密后的字符串作为des加密算法的密钥去加密相应的被点击图片的索引,并将加密后的图片索引传给服务器端;

(5)服务器端提取加密后的图片索引值并解密;

(6)验证服务器端解密的图片索引值与服务器端原始储存的图片索引值是否相同:是,则通过验证;不是,则验证失败,并进行步骤(7);

(7)客户端重新刷新验证码数据,并返回步骤(2)。

其中,步骤(2)中客户端从服务器端获得给用户展示的n张图片中的第一张图片的索引值startindex,从第二张到第n张图片则根据第一张图片的索引值startindex动态生成对应的索引值,生成规则为index(i)=index+(i-1);其中,i为服务器端展示的图片的序号。

进一步的,步骤(3)中得到的字符串为与被点击图片对应的长度为128bit的密钥字符串key(i)。

再进一步的,步骤(4)中提取被点击图片所对应的密钥字符串key(i),并使用密钥字符串key(i)作为des加密算法的密钥加密对应的第i张图片的索引值index(i),然后将加密后的图片索引值传给服务器端。

更进一步的,步骤(2)中当给用户展示的n张图片中按给出的目标图片词的数量为两个以上时,按给出的目标图片词的顺序点击图片。

为了更好地实现本发明,按照目标图片词的顺序执行完步骤(3)后再按目标图片词的顺序执行步骤(4),所有目标图片词都执行完步骤(4)后再按目标图片词的顺序执行步骤(5)。

为了确保效果,步骤(6)中,按照目标图片词的顺序进行验证,当所有目标图片词都通过验证则视为通过验证;当出现验证失败时则结束验证,并进行步骤(7)。

本发明与现有技术相比,具有以下优点及有益效果:

本发明不仅步骤简单,便于操作,而且其图形验证过程不容易被掌握其原理和规律,从而加大了人为破解的难度,提升了验证码的安全性,因此能有效防止大量重复请求、机器人暴力访问。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

实施例1

本发明的基于图片数据加密索引的图形验证方法,首先需要在服务器端建立图片库,图片库中包含多个不同种类和类型的图片。同时,服务器端还需要建立图片与图片词的一一对应关系,例如,图片显示的是“苹果”则与图片词“苹果”相对应的;图片显示的是“汽车”则与图片词“汽车”相对应。

然后,客户端将向服务器端请求图形验证,服务器端则向客户端展示n张图片,同时给出目标图片词,本实施例中以客户端获得的目标图片词的数量为一个来进行说明。实施时,n一般为大于3且小于10的整数,即服务器端向客户端展示的图片的数量通常为3~10张。在特殊的图形验证过程中,n也可以为其他正整数,即客户端从服务器端获得的给用户展示的图片也可以是3~10张以外的其他张数。本实施例中将n取值为9,即服务器端向客户端展示9张图片,用户则在9张图片中按给出的目标图片词点击对应的图片。

客户端在从服务器端获得给用户展示的n张图片和目标图片词的同时还从服务器端获得给用户展示的n张图片中的第一张图片的索引值startindex,从第二张到第n张图片则根据第一张图片的索引值startindex动态生成对应的索引值,其生成规则为index(i)=index+(i-1)。其中,i为服务器端展示的图片的序号,index(1)=startindex,即第一张图片的索引值为startindex。当i=2时,index(2)=index+1,即第二张图片的索引值为startindex+1。相应的,当i=3时,index(3)=index+2,则第三张图片的索引值为startindex+2。

接下来,提取用户点击的图片的数据,并对提取的图片数据进行md5加密,得到与点击图片对应的字符串。其中,得到的字符串为与被点击图片对应的长度为128bit的密钥字符串key(i)。然后,使用md5加密后的字符串作为des加密算法的密钥去加密相应的被点击图片的索引,并将加密后的图片索引传给服务器端。具体的,提取被点击图片所对应的密钥字符串key(i),并使用密钥字符串key(i)作为des加密算法的密钥去加密对应的第i张图片的索引值index(i),并将加密后的图片索引值传给服务器端。服务器端则提取加密后的图片索引值并解密。

然后验证服务器端解密的图片索引值与服务器端原始储存的图片索引值是否相同:是,则通过验证;不是,则验证失败,客户端重新刷新验证码数据,并重新从服务器端获得给用户展示的n张图片和目标图片词,然后返回上述按给出的目标图片词点击图片的步骤并再次重复进行上述步骤进行验证,直到通过验证。

实施例2

本实施例与实施例1基本相同,其不同点在于客户端从服务器端获得的目标图片词的数量为2个以上,则按给出的目标图片词的顺序点击图片。然后,按照目标图片词的顺序提取用户点击的图片的数据,并按照目标图片词的顺序对提取的图片数据进行md5加密,得到与点击图片一一顺序对应的字符串。然后按照目标图片词的顺序使用md5加密后的字符串作为des加密算法的密钥去加密相应的被点击图片的索引,并将加密后的图片索引按照目标图片词的顺序传给服务器端。服务器端则按照目标图片词的顺序提取加密后的图片索引值并按照目标图片词的顺序解密。然后,按照目标图片词的顺序进行验证,当所有目标图片词都通过验证则视为通过验证;当出现验证失败时则结束验证,并重新刷新验证码数据,然后从服务器端获得给用户展示的n张图片和目标图片词后重新进行验证。

如上所述,便可较好的实现本发明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1