CN110990822B - 验证码生成与验证方法、系统、电子设备及存储介质 - Google Patents
验证码生成与验证方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110990822B CN110990822B CN201911203835.6A CN201911203835A CN110990822B CN 110990822 B CN110990822 B CN 110990822B CN 201911203835 A CN201911203835 A CN 201911203835A CN 110990822 B CN110990822 B CN 110990822B
- Authority
- CN
- China
- Prior art keywords
- verification
- verification code
- code
- captcha
- scale
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 736
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000010200 validation analysis Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 10
- 238000005538 encapsulation Methods 0.000 claims description 7
- 230000001965 increasing effect Effects 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000002708 enhancing effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 235000001892 vitamin D2 Nutrition 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种验证码生成与验证方法、系统、电子设备及存储介质;方法包括:根据验证码生成请求,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则。本发明实施例提供的验证码生成与验证方法、系统、电子设备及存储介质,在生成验证码时,以随机的方式确定验证码中验证码元素间的比较关系,在验证操作时依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
Description
技术领域
本发明涉及网络安全领域,尤其涉及一种验证码生成与验证方法、系统、电子设备及存储介质。
背景技术
验证码是一种用于区分用户是计算机还是人的公共全自动程序。它在互联网中被广泛应用,可以防止以计算机方式实现的恶意破解密码、刷票、论坛灌水等行为。
现有技术中的验证码有多种表现形式,如数字和字母的随机组合、图片中含有特定文字或特定元素、随机生成两元的四则运算、滑动验证码等。这些验证码本身采取了一定的防计算机识别措施,如将包含待识别信息的图片做扭曲变形,又如在待识别信息的背景上随机地添加直线或点等。这些措施有一定的效果。但随着计算机技术的进步,现有技术中验证码所含验证码元素复杂度低、相互间关联度小等缺陷被发现与利用,已经有越来越多的验证码被破解,给网络安全带来隐患。
发明内容
本发明实施例提供一种验证码生成与验证方法、系统、电子设备及存储介质,用以解决现有技术中验证码元素复杂度低、相互间关联度小,易于被破解的缺陷。
第一方面,本发明实施例提供一种验证码生成方法,包括:
根据验证码生成请求,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;
对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;
将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则;
其中,所述验证规则包括对调整前的验证码中排列在前的第一验证码元素与排列在后的第二验证码元素间的比较关系的描述,以提示用户通过执行不同的验证操作来体现所述第一验证码元素与所述第二验证码元素间不同的比较结果。
上述技术方案中,所述验证码还包括小于所述第一验证码元素与所述第二验证码元素的第三验证码元素,和/或大于所述第一验证码元素与所述第二验证码元素的第四验证码元素;
所述验证规则还包括选取所述验证码消息中具有最小值的验证码元素和/或选取所述验证码消息中具有最大值的验证码元素。
第二方面,本发明实施例提供一种验证码验证方法,对第一方面任一项所述验证码生成方法所生成的验证码进行验证,包括:
接收根据用户的验证操作所形成的验证结果,根据所述调整前的验证码校验所述验证结果。
上述技术方案中,所述验证结果为经过比例尺封装的验证结果,在接收根据用户的验证操作所形成的验证结果之后,方法还包括:
对所述验证结果做比例尺解封;
根据所述调整前的验证码校验所述验证结果具体包括:根据所述调整前的验证码校验经过比例尺解封的验证结果。
第三方面,本发明实施例提供一种验证码验证方法,包括:
发送验证码生成请求,以使服务器端生成验证码并对所述验证码进行调整,所述验证码包括具有顺序关系的至少两个验证码元素,调整后的验证码中的验证码元素按照乱序排布;
接收并展示调整后的验证码以及验证规则;其中,所述验证规则包括对调整前的验证码中排列在前的第一验证码元素与排列在后的第二验证码元素间的比较关系的描述,以提示用户通过执行不同的验证操作来体现所述第一验证码元素与所述第二验证码元素间不同的比较结果;
采集用户的验证操作,形成验证结果并返回给服务器端,以使所述服务器端根据调整前的验证码校验所述验证结果。
上述技术方案中,所述验证结果为经过比例尺封装的验证结果;
所述形成验证结果并返回给服务器端具体包括:对验证结果做比例尺封装,形成经过比例尺封装的验证结果并返回给服务器端。
第四方面,本发明实施例提供一种验证码生成系统,包括:
验证码生成模块,用于根据验证码生成请求,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;
验证码调整模块,用于对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;
发送模块,用于将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则;其中,所述验证规则包括对调整前的验证码中排列在前的第一验证码元素与排列在后的第二验证码元素间的比较关系的描述,以提示用户通过执行不同的验证操作来体现所述第一验证码元素与所述第二验证码元素间不同的比较结果。
第五方面,本发明实施例提供一种验证码验证系统,包括第一电子设备和第二电子设备,其中,所述第一电子设备与所述第二电子设备之间通信连接;
所述第一电子设备,用于执行如第二方面所述的验证码验证方法;
所述第二电子设备,用于执行如第三方面所述的验证码验证方法。
第六方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述验证码生成方法的步骤,或实现如第二方面所述的验证码验证方法的步骤,或实现如第三方面所述的验证码验证方法。
第七方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述验证码生成方法的步骤,或实现如第二方面所述的验证码验证方法的步骤,或实现如第三方面所述的验证码验证方法。
本发明实施例提供的验证码生成与验证方法、系统、电子设备及存储介质,在生成验证码时,以随机的方式确定验证码中验证码元素间的比较关系,在验证操作时依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的验证码生成方法的流程图;
图2为本发明另一实施例提供的验证码生成方法的流程图;
图3为本发明实施例提供的验证码验证方法的流程图;
图4为本发明另一实施例提供的验证码验证方法的流程图;
图5为本发明又一实施例提供的验证码验证方法的流程图;
图6为本发明再一实施例提供的验证码验证方法的流程图;
图7为本发明实施例提供的验证码生成系统的示意图;
图8为本发明实施例提供的第一电子设备的示意图;
图9为本发明实施例提供的第二电子设备的示意图;
图10示例了一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的验证码生成方法的流程图,如图1所示,本发明实施例提供的验证码生成方法,应用于服务器端,具体包括以下步骤:
步骤101、根据验证码生成请求,生成验证码。
验证码的基本组成单位是验证码元素,一组具有顺序关系的验证码元素构成验证码。
在本发明实施例中,一个验证码中包括有两个验证码元素,这两个验证码元素按照在验证码中的先后顺序分别记为第一验证码元素、第二验证码元素。这两个验证码元素是两个数值,它们之间的大小关系具有随机性,即在一个验证码的例子中,第一验证码元素小于第二验证码元素,在另一个验证码的例子中,第一验证码元素大于第二验证码元素。在本发明的其他实施例中,验证码元素并不限于数值,还可以是其他类型的符号,如文字、颜色、字母等,验证码元素间应存在一定的比较关系。
在生成验证码时,以随机性为核心,生成验证码中的验证码元素。在本发明实施例中,以验证码元素为数值的情况为例,基于计算机系统时间与服务端的哈希码生成验证码元素的相关过程描述如下:
首先,生成第一验证码元素。所述第一验证码元素依赖于计算机系统时间与服务端的哈希码得到。用户通过客户端提起验证码生成请求,服务端收到请求后,为该请求派生出一个对象,由该对象专门处理这一验证码生成请求。不同的验证码生成请求对应不同的对象。客户端提起验证码生成请求的时间为所述的计算机系统时间,用于处理验证码生成请求的对象的标识为所述的服务端的哈希码。提起验证码生成请求的时间不同,所述的计算机系统时间一定不同,所生成的第一验证码元素不同。即使提起验证码生成请求的时间相同,请求验证码的客户端不一样,服务端所派生的对象就不一样,所生成的第一验证码元素也就不同。在一个范例中,假设提起验证码生成请求的时间为“2019-01-25 17:25:46”,获得计算机系统时间为:1548407738000,对该时间进行位数截取,得到第一随机数:407738。假设服务端的哈希码为1163157884,同样对其进行截取,得到第二随机数:631578。(注:截取过程中对系统时间的位数截取位置是固定的,即去掉高四位取中间6位;对哈希码的位数截取位置则相应“随机”,可取最高6位,也可取最低6位,或如上述假设的那样,取中间6位。)
在得到第一随机数与第二随机数后,做加法运算,如下表1所示:
表1
所得到的结果为:038206。从这一结果中随机抽取两个连续位所组成的数,将这一数作为第一验证码元素的值。
若验证码元素的数值对应验证码所支持活动区间的坐标值,为了避免验证码所支持的活动区间太大会提高对验证码活动区间的灵敏度要求,不利于验证码验证过程的实现,通常会将前述随机抽取两个连续位所组成的数做进一步处理后,再将结果值作为第一验证码元素的值。例如,从038206中抽取出38,这个值超出了验证码的活动区间,因此将这一值除以10得到3.8,将3.8作为第一验证码元素的值。
在得到第一验证码元素后,利用范围比例值来求取第二验证码元素的值。所述范围比例值可使用随机函数Random实现,由随机函数Random的种子值生成随机数,将这一随机数与第一验证码元素相乘,可得到第二验证码元素的值。需要说明的是,由于随机函数Random所生成的随机数未必是大于1的值,所以所获得的第一验证码元素、第二验证码元素间的大小关系具有随机性,即:既有可能是第一验证码元素小于第二验证码元素,也有可能是第一验证码元素大于第二验证码元素。
生成验证码的方式并不局限于本发明实施例所涉及的基于计算机系统时间与服务端的哈希码这一实现方式。在本发明的其他实施例中,以随机性为核心,还可以采用其他的验证码生成方式。在本发明的另一个实施例中,选取一张地势海拔的等高线图,然后用一条直线随机穿过该等高线图,该直线会与等高线图中的等高线形成多个交点,从这些交点中选取多个点作为验证码中的验证码元素,这些验证码元素按照顺序关系构成验证码。
在本发明的又一个实施例中,还可选取一个波浪的波峰波谷图。从波峰波谷图中选取诸如波谷、波峰、波峰波谷间的点作为验证码元素,这些验证码元素按照顺序关系构成验证码。
参照上述验证码的随机生成方法,本领域技术人员还可采用其它的方式来生成验证码,并不局限于本申请文件中所描述的方法。
步骤102、对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布。
服务器端所生成的验证码中的验证码元素间具有顺序关系,这一验证码不能直接发送给客户端并在客户端展示,否则很容易被机器识别并据此完成验证操作。因此在将验证码发送给客户端之前,需要对验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布。
步骤103、将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则。
所述验证规则反映了验证码元素在验证过程中的顺序。由于调整后的验证码中所包含的验证码元素是乱序的,因此需要由验证规则来描述各验证码元素在验证过程中的正确顺序。
在本发明实施例中,仍以前述的包括有两个验证码元素的验证码为例,所述验证规则具体包括了对调整前的验证码中排列在前的第一验证码元素与排列在后的第二验证码元素间的比较关系的描述。例如,对于验证码{2.4,3.6}(本申请稿中,{}表示其中所包含的元素是有顺序关系的),第一验证码元素2.4小于第二验证码元素3.6,在验证规则中描述“在先验证码元素小于在后验证码元素”,那么在得到乱序的验证码元素2.4、3.6之后,根据验证规则可确定验证码元素2.4先于验证码元素3.6验证。反之,对于验证码{3.6,2.4},验证规则中描述“在先验证码元素大于在后验证码元素”,那么在验证时根据验证规则可确定验证码元素3.6先于验证码元素2.4验证。
在本发明实施例中,作为一种优选实现方式,调整后的验证码以及验证规则在发送客户端前需要进行加密,服务器端包含有密码库,从所述密码库中提取加密算法与密钥,可实现对数据的加密。所述密码库在超过特定的时间间隔后会对密码库中的内容进行更换。常见的时间间隔周期有9天、17天、23天等,一般不设定为7天、10天、15天等规则化日期。
调整后的验证码以及验证规则发送给客户端后,用户就可以在客户端进行验证操作。具体的验证操作将在后续对验证方法的描述中做详细说明。
本发明实施例提供的验证码生成方法在生成验证码时,以随机的方式确定验证码中验证码元素间的比较关系,使得后续在验证操作时需要依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,图2为本发明另一实施例提供的验证码生成方法的流程图,如图2所示,本发明另一实施例提供了一种验证码生成方法,应用于服务器端,该方法包括:
步骤201、根据验证码生成请求,生成多元验证码。
所谓的多元验证码是指根据这一验证码,用户需要完成多种类型的验证方式才能完成整个验证操作。例如,根据本发明实施例所提供的多元验证码,用户不仅需要完成前述本发明实施例中所描述的根据第一验证码元素与第二验证码元素间的比较结果来执行对应的验证操作的验证方式,还需要完成选取极值的验证方式。
根据该选取极值的验证方式,在一个本发明实施例中,验证码还包括有第三验证码元素,所述第三验证码元素比所述第一验证码元素和第二验证码元素都小。在又一个本发明实施例中,验证码元素还包括有第四验证码元素,所述第四验证码元素比所述第一验证码元素和第二验证码元素都大。在另一个本发明实施例中,验证码同时包括第三验证码元素和第四验证码元素,所述第三验证码元素比所述第一验证码元素和第二验证码元素都小,所述第四验证码元素比所述第一验证码元素和第二验证码元素都大。
步骤202、对所述多元验证码进行调整,使得调整后的多元验证码中的验证码元素按照乱序排布;
步骤203、将调整后的多元验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的多元验证码以及所述验证规则。
在本发明实施例中,由于用户完成整个验证操作时还要完成选取极值的验证方式,因此所述验证规则还包括对选取极值操作的相关描述。在一个本发明实施例中,所述验证规则还包括:选取所述验证码消息中具有最小值的验证码元素。在又一个本发明实施例中,所述验证规则还包括:选取所述验证码消息中具有最大值的验证码元素。在另一个本发明实施例中,所述验证规则还包括:选取所述验证码消息中具有最小值的验证码元素,以及选取所述验证码消息中具有最大值的验证码元素。
本发明实施例提供的验证码生成方法能够生成多元验证码,使得后续在验证操作时必须完成多种类型的验证操作才能实现对整个验证码的验证,进一步增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,图3为本发明实施例提供的验证码验证方法的流程图,如图3所示,本发明实施例提供了一种验证码验证方法,应用于客户端,该方法包括:
步骤301、发送验证码生成请求,以使服务器端生成验证码并对所述验证码进行调整。
步骤302、接收并展示调整后的验证码以及验证规则。
在本发明实施例中,展示调整后的验证码以及验证规则通过提示界面的方式实现。如在客户端生成一个提示界面,该提示界面的左半部分用于描述调整后的验证码中的验证码元素,右半部分用于描述验证规则或基于验证规则生成的提示消息。提示界面中的内容,特别是验证规则或提示消息可以由客户端做干扰处理,如字形扭曲、添加干扰线条等,以增加机器识别的难度。
如何展示调整后的验证码以及验证规则并不局限于上述描述,本领域技术人员可根据需要进行调整。
步骤303、采集用户的验证操作,形成验证结果并返回给服务器端,以使所述服务器端根据调整前的验证码校验所述验证结果。
本步骤中,采集用户的验证操作可具有多种实现方式,在本发明实施例中,可通过一个滑动界面来实现并采集用户的验证操作。
所述滑动界面包括有滑动坐标轴与滑动控件,滑动坐标轴上有坐标刻度,滑动控件包括有滑动点,所述滑动点能在滑动坐标轴上滑动。滑动点在滑动坐标轴上滑动时可显示滑动点当前的坐标刻度值。滑动点的数目与调整后的验证码中所包含的验证码元素的个数有关,一个滑动点对应于对一个验证码元素的操作。滑动坐标轴可以是一个带有坐标刻度的水平轴,但本领域技术人员应当了解,滑动坐标轴并不局限于水平轴,还可以是垂直轴、有一定斜率的直线轴,甚至是弧形轴、折线轴等本领域技术人员能够想到的其他坐标轴形式。
在一个范例中,假设用户在进行验证操作时,根据滑动界面所提供的功能,他需要滑动一个滑块,该滑块在滑动坐标轴上第一次滑动确定(如点击一下鼠标代表一次滑动确定)时,该滑块(如滑块宽度较大可以是滑块上的指针)所对应的位置是第一滑动点,第一滑动点在滑动坐标轴上的刻度值对应用户验证过程中所生成的第一个待校验的验证码元素;接着,他需要继续滑动滑块,当滑块在滑动坐标轴上第二次滑动确定时,该滑块(或滑块指针)所对应的位置是第二滑动点,第二滑动点在滑动坐标轴上的刻度值对应用户验证过程中所生成的第二个待校验的验证码元素。若客户端所展示的验证码元素有2.4、3.6;验证规则为:在先验证码元素大于在后验证码元素(对应验证码{3.6,2.4})。那么根据上述验证码与验证规则,用户需要先将滑块滑动至滑动坐标轴的刻度值3.6处,然后将滑块滑动至滑动坐标轴的刻度值2.4处。滑动坐标轴的刻度值是按照从左到右的顺序逐渐变大的,所以上述验证操作需要用户将滑块按照从右向左的方向进行滑动。若客户端所展示的验证码元素有2.4、3.6;验证规则为:在先验证码元素小于在后验证码元素(对应验证码{2.4,3.6})。那么根据上述验证码与验证规则,用户需要先将滑块滑动至滑动坐标轴的刻度值2.4处,然后将滑块滑动至滑动坐标轴的刻度值3.6处。即:上述验证操作需要用户将滑块按照从左向右的方向进行滑动。由此可见,第一验证码元素与所述第二验证码元素间比较结果不同,用户要正确验证时所需完成的验证操作也会不同。
从上述范例可以看出,机器即便识别了调整后验证码中所包含的验证码元素,也无法通过比较第一验证码元素与第二验证码元素间来知道需要执行何种验证操作,可以增加机器识别的难度。
在前述的本发明实施例中,通过一个滑动界面来实现并采集用户的验证操作。在本发明的其他实施例中,可以有其他实现方式。
在本发明实施例中,作为一种优选实现方式,验证结果在传输给服务器端前,需要对验证结果做比例尺封装。在比例尺封装后的验证结果中,只有一个待校验验证码元素的值是真实值,其他待校验验证码元素的值都是比例值。在本发明实施例中,将待封装的某一待校验验证码元素的真实值简称为封装前真实值,将比例尺封装后所保留的待检验验证码元素的真实值简称为标准真实值,比例值的计算方式为:
(封装前真实值-标准真实值)/刻度区间的长度。
例如,一个待校验验证码元素的大小是7.8,比例尺封装后保留真实值的待校验验证码元素的大小是2.6,刻度区间的长度是10,那么这个待校验验证码元素的比例值是(7.8-2.6)/10=0.52(或52%)。
上述的比例值计算方式仅为示范之用,本领域技术人员可采用其它的比例值计算方法。
通过比例尺封装操作,可以将客户端发送给服务器端的验证结果与未知设备发送给服务器端的验证结果区分开来,让服务器端了解其所接收到的数据来自于客户端,提高了网络安全性。
在本发明实施例中,作为一种优选实现方式,验证结果在传输给服务器端前,还需要做加密操作。在前文中已经描述了客户端与服务器端均包含有密码库,如何利用密码库中的信息对验证结果进行加密为本领域技术人员所公知,因此不在此处做重复说明。
本发明实施例提供的验证码验证方法在验证时需要依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,图4为本发明另一实施例提供的验证码验证方法的流程图,如图4所示,本发明另一实施例提供了一种验证码验证方法,应用于客户端,该方法包括:
步骤401、发送验证码生成请求,以使服务器端生成多元验证码并对所述多元验证码进行调整。
步骤402、接收并展示调整后的多元验证码以及验证规则。
步骤403、采集用户的验证操作,形成验证结果并返回给服务器端,以使所述服务器端根据调整前的多元验证码校验所述验证结果。
与前一本发明实施例所描述的验证码验证方法相比,本发明实施例中需要对多元验证码进行验证。
在验证多元验证码时,用户所要执行的验证操作还需完成对极值的选取。在本发明实施例中,仍以滑动界面为例,在选取极值时,或根据调整后的验证码中的验证码元素最小值,将代表最小值的滑动点滑动到对应的刻度坐标,或根据调整后的验证码中的验证码元素最大值,将代表最大值的滑动点滑动到对应的刻度坐标,或根据调整后的验证码中的验证码元素最小值,将代表最小值的滑动点滑动到对应的刻度坐标,以及根据调整后的验证码中的验证码元素最大值,将代表最大值的滑动点滑动到对应的刻度坐标。从滑动坐标轴上读取相应的结果,就是关于最小值和/或最大值的待检验验证码元素。
在一个范例中,调整后的验证码中包括验证码元素7.8、6、4.1、2.6。在滑动界面中实现验证,对这一调整后的验证码进行验证需要执行两种验证操作,一种是对最大值、最小值的选取,一种是滑块滑动操作。验证规则为:“依次选取最小值、最大值,然后滑动滑块(注:滑块滑动的开始值大于结束值)”。那么用户在验证验证码时,首先需要判断验证码元素7.8、6、4.1、2.6中,哪个值最小,然后在界面上选取该最小值(如通过在滑动坐标轴上拖动滑动点的方式),然后判断哪个值最大,在界面上选取该最大值。接着做滑块滑动操作。在滑动滑块时,需要从剩余的次小值、次大值中先选取次大值(因为滑动规则中已经规定:滑块滑动的开始值大于结束值),根据该次大值将滑块先滑动到该次大值在滑动坐标轴上对应的位置,接着将滑块滑动到次小值在滑动坐标轴上对应的位置。
以上是对多元码验证过程的说明。
本发明实施例提供的验证码验证方法在验证时必须完成多种类型的验证操作才能实现对整个验证码的验证,进一步增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,图5为本发明实施例提供的验证码验证方法的流程图,如图5所示,本发明实施例提供了一种验证码验证方法,应用于服务器端,该方法包括:
步骤501、接收根据用户的验证操作所形成的验证结果,根据所述调整前的验证码校验所述验证结果。
在本发明实施例中,作为一种优选实现方式,服务器端对所接收到的验证结果首先做解密操作。在解密时,从服务器端的密码库中提取解密算法与密钥,实现对验证结果的解密。
在本发明实施例中,作为一种优选实现方式,所述验证结果已经由客户端做了比例尺封装,因此需要对验证结果做解封操作。所述验证结果包括一组按顺序排列的待校验验证码元素。
经过比例尺封装的验证结果中,只有一个待校验验证码元素是真实值,其余待校验验证码元素采用比例值来表示。在解封时,首先读取其中采用真实值表示的待校验验证码元素,然后按照这一真实值与相应的比例值还原其他的待校验验证码元素。以比例尺封装前的验证结果{2.6,7.8}为例,假设客户端传回的真实值是待校验验证码元素2.6的真实值,其他的待校验验证码元素是比例值,即经过比例尺封装的验证结果的表达式为:{2.6、52%}。那么在解封计算时:
待校验的验证码元素=2.6+刻度区间*52%=2.6+10*52%=7.8;
上述的解封计算方式仅为示范之用,本领域技术人员可采用其它的解封计算方式。但解封计算方式应当与客户端的比例尺封装方式相对应。
在上面的范例中,客户端传回的真实值是待校验的第一验证码元素的真实值,本领域技术人员应当了解,客户端传回的真实值还可以是验证结果中其他待校验的验证码元素的真实值。在验证结果中只要有任意一个待校验的验证码元素的真实值,就可根据比例值计算其他待校验的验证码元素的值。
在得到验证结果中所包含的各个待校验的验证码元素后,将这些待校验的验证码元素与之前服务器端所生成的调整前的验证码中的验证码元素进行逐一比较,如将验证结果中待校验的第一校验码元素与调整前的验证码中的第一验证码元素进行比较、将验证结果中待校验的第二验证码元素与调整前的验证码中的第二验证码元素进行比较、……,数值均相等,校验成功,用户输入验证码正确;否则,用户输入验证码错误。
本发明实施例提供的验证码验证方法在验证操作时依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,图6为本发明实施例提供的验证码验证方法的流程图,如图6所示,本发明实施例提供的验证码验证方法包括:
步骤601、客户端发送验证码生成请求;
步骤602、服务器端接收到验证码生成请求后,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;
步骤603、对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;
步骤604、将调整后的验证码以及验证规则发送给客户端;
步骤605、客户端接收并展示调整后的验证码以及验证规则;
步骤606、采集用户的验证操作,形成验证结果并返回给服务器端;
步骤607、服务器端接收验证结果,根据所述调整前的验证码校验所述验证结果。
本发明实施例提供的验证码验证方法在生成验证码时,以随机的方式确定验证码中验证码元素间的比较关系,在验证操作时依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,图7为本发明实施例提供的验证码生成系统的示意图,如图7所示,本发明实施例提供的验证码生成系统包括:
验证码生成模块701,用于根据验证码生成请求,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;
验证码调整模块702,用于对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;
发送模块703,用于将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则;其中,所述验证规则包括对调整前的验证码中排列在前的第一验证码元素与排列在后的第二验证码元素间的比较关系的描述,以提示用户通过执行不同的验证操作来体现所述第一验证码元素与所述第二验证码元素间不同的比较结果。
本发明实施例提供的验证码生成系统在生成验证码时,以随机的方式确定验证码中验证码元素间的比较关系,使得后续在验证操作时需要依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,图8为本发明实施例提供的第一电子设备的示意图,如图8所示,本发明实施例提供的第一电子设备包括:
验证码生成模块801,用于采用所述验证码生成系统生成验证码,调整验证码,并将调整后的验证码以及验证规则发送给第二电子设备;
校验模块802,用于接收根据用户的验证操作所形成的验证结果,根据调整前的验证码校验所述验证结果。
本发明实施例提供的第一电子设备在验证操作时依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,图9为本发明实施例提供的第二电子设备的示意图,如图9所示,本发明实施例提供的第二电子设备包括:
验证码生成请求发送模块901,用于发送验证码生成请求,以使第一电子设备生成验证码并对所述验证码进行调整,所述验证码包括具有顺序关系的至少两个验证码元素,调整后的验证码中的验证码元素按照乱序排布;
接收与展示模块902,用于接收并展示调整后的验证码以及验证规则;其中,所述验证规则包括对调整前的验证码中排列在前的第一验证码元素与排列在后的第二验证码元素间的比较关系的描述,以提示用户通过执行不同的验证操作来体现所述第一验证码元素与所述第二验证码元素间不同的比较结果;
验证结果生成模块903,用于采集用户的验证操作,形成验证结果并返回给第一电子设备,以使所述第一电子设备根据调整前的验证码校验所述验证结果。
本发明实施例提供的第二电子设备在验证时需要依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
基于上述任一实施例,本发明实施例还提供了一种验证码验证系统,包括第一电子设备和第二电子设备,所述第一电子设备与所述第二电子设备之间通信连接;
所述第一电子设备包括验证码生成模块、校验模块;所述验证码生成模块用于采用所述验证码生成系统生成验证码,调整验证码,并将调整后的验证码以及验证规则发送给第二电子设备;所述校验模块用于接收根据用户的验证操作所形成的验证结果,根据调整前的验证码校验所述验证结果。
所述第二电子设备包括验证码生成请求发送模块、接收与展示模块、验证结果生成模块;其中,所述验证码生成请求发送模块用于发送验证码生成请求,以使第一电子设备生成验证码并对所述验证码进行调整;所述接收与展示模块用于接收并展示调整后的验证码以及验证规则;所述验证结果生成模块用于采集用户的验证操作,形成验证结果并返回给第一电子设备,以使所述第一电子设备根据调整前的验证码校验所述验证结果。
本发明实施例提供的验证码验证系统在生成验证码时,以随机的方式确定验证码中验证码元素间的比较关系,在验证操作时依赖验证码元素间的具体比较结果来执行对应的验证操作,增加了机器识别的难度,增强了验证码的安全性。
图10示例了一种电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1010、通信接口(Communications Interface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑指令,以执行如下方法:根据验证码生成请求,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则。或执行如下方法:接收根据用户的验证操作所形成的验证结果,根据所述调整前的验证码校验所述验证结果。或执行如下方法:发送验证码生成请求;接收并展示调整后的验证码以及验证规则;采集用户的验证操作,形成验证结果并返回给服务器端。
需要说明的是,本实施例中的电子设备在具体实现时可以为服务器,也可以为PC机,还可以为其他设备,只要其结构中包括如图10所示的处理器1010、通信接口1020、存储器1030和通信总线1040,其中处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信,且处理器1010可以调用存储器1030中的逻辑指令以执行上述方法即可。本实施例不对电子设备的具体实现形式进行限定。
此外,上述的存储器1030中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据验证码生成请求,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则。或包括:接收根据用户的验证操作所形成的验证结果,根据所述调整前的验证码校验所述验证结果。或包括:发送验证码生成请求;接收并展示调整后的验证码以及验证规则;采集用户的验证操作,形成验证结果并返回给服务器端。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:根据验证码生成请求,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则。或包括:接收根据用户的验证操作所形成的验证结果,根据所述调整前的验证码校验所述验证结果。或包括:发送验证码生成请求;接收并展示调整后的验证码以及验证规则;采集用户的验证操作,形成验证结果并返回给服务器端。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种验证码验证方法,其特征在于,包括:
根据验证码生成请求,生成验证码,所述验证码包括具有顺序关系的至少两个验证码元素;
对所述验证码进行调整,使得调整后的验证码中的验证码元素按照乱序排布;
将调整后的验证码以及验证规则发送给客户端,使得所述客户端展示所述调整后的验证码以及所述验证规则;
接收根据用户的验证操作所形成的经过比例尺封装的验证结果,对所述经过比例尺封装的验证结果做比例尺解封,根据所述调整前的验证码校验经过比例尺解封的验证结果;
其中,所述验证规则包括对调整前的验证码中排列在前的第一验证码元素与排列在后的第二验证码元素间的比较关系的描述,以提示用户通过执行不同的验证操作来体现所述第一验证码元素与所述第二验证码元素间不同的比较结果;
所述经过比例尺封装的验证结果包括一个采用真实值表示的待校验验证码元素以及其他采用比例值表示的待校验验证码元素;
所述对所述验证结果做比例尺解封包括:读取所述验证结果中采用真实值表示的待校验验证码元素,然后按照这一真实值与相应的比例值还原其他的待校验验证码元素。
2.根据权利要求1所述的验证码验证方法,其特征在于,所述验证码还包括小于所述第一验证码元素与所述第二验证码元素的第三验证码元素,和/或大于所述第一验证码元素与所述第二验证码元素的第四验证码元素;
所述验证规则还包括选取所述验证码消息中具有最小值的验证码元素和/或选取所述验证码消息中具有最大值的验证码元素。
3.一种验证码验证方法,其特征在于,包括:
发送验证码生成请求,以使服务器端生成验证码并对所述验证码进行调整,所述验证码包括具有顺序关系的至少两个验证码元素,调整后的验证码中的验证码元素按照乱序排布;
接收并展示调整后的验证码以及验证规则;其中,所述验证规则包括对调整前的验证码中排列在前的第一验证码元素与排列在后的第二验证码元素间的比较关系的描述,以提示用户通过执行不同的验证操作来体现所述第一验证码元素与所述第二验证码元素间不同的比较结果;
采集用户的验证操作,对验证结果做比例尺封装,形成经过比例尺封装的验证结果并返回给服务器端,以使所述服务器端对所述经过比例尺封装的验证结果做比例尺解封,根据调整前的验证码校验经过比例尺解封的验证结果;
其中,所述经过比例尺封装的验证结果包括一个采用真实值表示的待校验验证码元素以及其他采用比例值表示的待校验验证码元素;
所述对所述验证结果做比例尺解封包括:读取所述验证结果中采用真实值表示的待校验验证码元素,然后按照这一真实值与相应的比例值还原其他的待校验验证码元素。
4.一种验证码验证系统,其特征在于,包括第一电子设备和第二电子设备,其中,所述第一电子设备与所述第二电子设备之间通信连接;
所述第一电子设备,用于执行如权利要求1或2所述的验证码验证方法;
所述第二电子设备,用于执行如权利要求3所述的验证码验证方法。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1或2所述验证码验证方法的步骤,或实现如权利要求3所述的验证码验证方法的步骤。
6.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1或2所述验证码验证方法的步骤,或实现如权利要求3所述的验证码验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911203835.6A CN110990822B (zh) | 2019-11-29 | 2019-11-29 | 验证码生成与验证方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911203835.6A CN110990822B (zh) | 2019-11-29 | 2019-11-29 | 验证码生成与验证方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110990822A CN110990822A (zh) | 2020-04-10 |
CN110990822B true CN110990822B (zh) | 2022-05-13 |
Family
ID=70088711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911203835.6A Active CN110990822B (zh) | 2019-11-29 | 2019-11-29 | 验证码生成与验证方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110990822B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115765976A (zh) * | 2022-08-11 | 2023-03-07 | 中金金融认证中心有限公司 | 验证码加密方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006163A (zh) * | 2009-09-01 | 2011-04-06 | 阿里巴巴集团控股有限公司 | 用户验证方法、装置及服务器 |
CN108243154A (zh) * | 2016-12-26 | 2018-07-03 | 腾讯科技(北京)有限公司 | 一种验证码数据处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8898740B2 (en) * | 2010-06-28 | 2014-11-25 | International Business Machines Corporation | Mask based challenge response test |
-
2019
- 2019-11-29 CN CN201911203835.6A patent/CN110990822B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102006163A (zh) * | 2009-09-01 | 2011-04-06 | 阿里巴巴集团控股有限公司 | 用户验证方法、装置及服务器 |
CN108243154A (zh) * | 2016-12-26 | 2018-07-03 | 腾讯科技(北京)有限公司 | 一种验证码数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110990822A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3893170B1 (en) | Federated learning-based model parameter training method, apparatus and device, and medium | |
US10216923B2 (en) | Dynamically updating CAPTCHA challenges | |
EP3046286B1 (en) | Information processing method, program, and information processing apparatus | |
CN112425114B (zh) | 受公钥-私钥对保护的密码管理器 | |
US10924289B2 (en) | Public-private key pair account login and key manager | |
US10938789B2 (en) | System and method for trusted presentation of information on untrusted user devices | |
CN107895105B (zh) | 一种密码处理方法、终端设备及计算机可读存储介质 | |
CN108075888B (zh) | 动态url生成方法及装置、存储介质、电子设备 | |
CN103888410B (zh) | 应用身份验证方法及系统 | |
CN112507326B (zh) | 基于sm3杂凑算法的密码信息加密方法、装置以及计算机设备 | |
CN112187702A (zh) | 一种对客户端进行验证的方法和装置 | |
US20170076285A1 (en) | Payment Method and Apparatus and Payment Factor Processing Method and Apparatus | |
CN108965324A (zh) | 一种短信验证码防刷方法、终端、服务器、设备及介质 | |
CN110113329A (zh) | 一种验证码的验证方法及装置 | |
CN110990822B (zh) | 验证码生成与验证方法、系统、电子设备及存储介质 | |
WO2017176192A1 (en) | Method and system for secure password storage | |
KR20130085566A (ko) | 캡챠를 이용한 비밀번호 인증시스템 및 그 방법 | |
CN115765976A (zh) | 验证码加密方法、电子设备及存储介质 | |
CN112995160B (zh) | 数据解密系统及方法、终端、服务器和非瞬时性存储介质 | |
CN110968878A (zh) | 信息传输方法、系统、电子设备及可读介质 | |
CN107959670B (zh) | 一种动态口令的生成方法、装置、终端设备和存储介质 | |
KR102021956B1 (ko) | 스마트 카드 기반 인증 시스템, 장치 및 인증 방법 | |
CN111460422B (zh) | 生成验证码的方法和装置 | |
JP6253283B2 (ja) | コンテンツデータ処理装置 | |
CN115174181B (zh) | 一种单点登录的实现方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |