一种挑战码的实现方法、装置及系统转让专利

申请号 : CN201910977912.7

文献号 : CN110611598B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王勤武

申请人 : 浙江齐治科技股份有限公司

摘要 :

本发明公开了一种挑战码的实现方法,包括:当系统后台接收到请求登录请求时,发送挑战码,其中,挑战码由第一随机数和机器码组成;本地终端接收挑战码,若所述挑战码合理,将预设时长内挑战码的请求次数、机器码和第二随机数发送给远程终端;所述远程终端依据其确定第一密文;将第一密文发送给本地终端,本地终端对第一密文进行解密,得到第一明文;当所述第一明文与所述第二随机数相同时,本地终端将依据预设规则生成的验证码发送给系统后台;系统后台依据所述验证码进行验证。上述的方法中,接收挑战码和生成验证码的均为本地终端,避免了在传递过程中可能发生错误,造成无法登录系统后台的问题。

权利要求 :

1.一种挑战码的实现方法,其特征在于,包括:当系统后台接收到请求登录请求时,发送挑战码,其中,所述挑战码由第一随机数和机器码组成;

本地终端接收所述挑战码,对所述挑战码的合理性进行验证;

若所述挑战码合理,将预设时长内所述挑战码的请求次数、所述机器码和第二随机数发送给远程终端;

所述远程终端依据所述请求次数、所述机器码和所述第二随机数,确定第一密文;

将所述第一密文发送给所述本地终端,所述本地终端对所述第一密文进行解密,得到第一明文;

当所述第一明文与所述第二随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;

所述系统后台依据所述验证码进行验证。

2.根据权利要求1所述的方法,其特征在于,对所述挑战码的合理性进行验证,包括:获取所述挑战码中的机器码;

将所述机器码与预设的机器码的格式进行比较。

3.根据权利要求1所述的方法,其特征在于,所述远程终端依据所述请求次数、所述机器码和所述第二随机数,确定第一密文,包括:依据所述请求次数和所述机器码确定请求总次数;

将所述请求总次数与预设的次数阈值进行比较;

当所述请求总次数小于等于预设的次数阈值时,所述终端对所述第二随机数进行加密;

当所述请求总次数大于预设的次数阈值时,所述终端对任意随机数进行加密。

4.根据权利要求1所述的方法,其特征在于,依据预设规则生成的验证码包括:对所述机器码进行加密,得到第二密文;

获取当前时间和第三随机数;

将所述第二密文、所述当前时间和所述第三随机数进行连接后与所述第一随机数进行异或,得到中间结果;

将所述中间结果进行加密得到所述验证码。

5.根据权利要求1所述的方法,其特征在于,所述系统后台依据所述验证码进行验证,包括:

对所述验证码进行解密,得到第二明文;

将所述第二明文与所述第一随机数进行异或操作后进行分割,得到目标时间、机器码密文和第三随机数;

判断所述目标时间是否满足预设的时长,若是,对所述机器码密文进行解密,得到第三明文;

当所述第三明文与所述机器码一致时,登录所述系统后台。

6.一种挑战码的实现装置,其特征在于,包括:第一发送模块,用于当系统后台接收到请求登录请求时,发送挑战码,其中,所述挑战码由第一随机数和机器码组成;

接收和验证模块,用于本地终端接收所述挑战码,对所述挑战码的合理性进行验证;

第二发送模块,用于若所述挑战码合理,将预设时长内所述挑战码的请求次数、所述机器码和第二随机数发送给远程终端;

确定模块,用于所述远程终端依据所述请求次数、所述机器码和所述第二随机数,确定第一密文;

发送和解密模块,用于将所述第一密文发送给所述本地终端,所述本地终端对所述第一密文进行解密,得到第一明文;

第三发送模块,用于当所述第一明文与所述第二随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;

验证模块,用于所述系统后台依据所述验证码进行验证。

7.根据权利要求6所述的装置,其特征在于,所述确定模块包括:确定单元,用于依据所述请求次数和所述机器码确定请求总次数;

比较单元,用于将所述请求总次数与预设的次数阈值进行比较;

第一加密单元,用于当所述请求总次数小于等于预设的次数阈值时,所述终端对所述第二随机数进行加密;

第二加密单元,用于当所述请求总次数大于预设的次数阈值时,所述终端对任意随机数进行加密。

8.根据权利要求6所述的装置,其特征在于,所述验证模块包括:解密单元,用于对所述验证码进行解密,得到第二明文;

分割单元,用于将所述第二明文与所述第一随机数进行异或操作后进行分割,得到目标时间、机器码密文和第三随机数;

判断和解密单元,用于判断所述目标时间是否满足预设的时长,若是,对所述机器码密文进行解密,得到第三明文;

登录单元,用于当所述第三明文与所述机器码一致时,登录所述系统后台。

9.一种挑战码的实现系统,其特征在于,包括:系统后台、本地终端和远程终端,其中:所述系统后台,用于接收登录请求、返回挑战码并对验证码进行验证,其中,所述挑战码由第一随机数和机器码组成;

所述本地终端,用于对所述挑战码的合法性进行验证,若所述挑战码合理,将预设时长内挑战码的请求次数、所述机器码和第二随机数发送给远程终端,并接收所述远程终端反馈的第一密文,对所述第一密文进行解密,得到第一明文,当所述第一明文与所述第二随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;

所述远程终端,用于依据所述请求次数、所述机器码和所述第二随机数,确定第一密文,将所述第一密文发送给所述本地终端。

10.根据权利要求9所述的系统,其特征在于,还包括:第三方终端,其中,所述第三方终端,用于发送所述登录请求,接收所述挑战码,将所述挑战码发送给所述本地终端,接收所述验证码,并将所述验证码发送给所述系统后台,接收所述系统后台返回的结果。

说明书 :

一种挑战码的实现方法、装置及系统

技术领域

[0001] 本发明涉及加密技术领域,尤其涉及一种挑战码的实现方法、装置及系统。

背景技术

[0002] 不同的系统都会存在一个供运维人员进入的后台,如果存在一个可以进入后台的通用密码,那么后台将不再安全。一方面是运维人员可以随意进出后台,不受控制,并且一
旦通用的密码泄露后,非运维人员也可以登录后台,有可能造成信息或者核心代码的泄露。
[0003] 为了避免信息或者核心代码的泄露,通过挑战码来实现登录,只要是由要登录后台的软件或者系统生成一个挑战码,然后通过额外的内部系统产生一个验证码。如果验证
成功,就可以登录后台。根据场景的不同,接收挑战码和负责生成验证码的可能是两个终
端,在传递过程中可能发生错误,造成无法登录系统后台。

发明内容

[0004] 有鉴于此,本发明提供了一种挑战码的实现方法、装置及系统,用于解决现有技术中接收挑战码和负责生成验证码的可能是两个终端,在传递过程中可能发生错误,造成无
法登录系统后台的问题,具体方案如下:
[0005] 一种挑战码的实现方法,包括:
[0006] 当系统后台接收到请求登录请求时,发送挑战码,其中,所述挑战码由第一随机数和机器码组成;
[0007] 本地终端接收所述挑战码,对所述挑战码的合理性进行验证;
[0008] 若所述挑战码合理,将预设时长内所述挑战码的请求次数、所述机器码和第二随机数发送给远程终端;
[0009] 所述远程终端依据所述请求次数、所述机器码和所述第二随机数,确定第一密文;
[0010] 将所述第一密文发送给所述本地终端,所述本地终端对所述第一密文进行解密,得到第一明文;
[0011] 当所述第一明文与所述第二随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;
[0012] 所述系统后台依据所述验证码进行验证。
[0013] 上述的方法,可选的,对所述挑战码的合理性进行验证,包括:
[0014] 获取所述挑战码中的机器码;
[0015] 将所述机器码与预设的机器码的格式进行比较。
[0016] 上述的方法,可选的,所述远程终端依据所述请求次数、所述机器码和所述第二随机数,确定第一密文,包括:
[0017] 依据所述请求次数和所述机器码确定请求总次数;
[0018] 将所述请求总次数与预设的次数阈值进行比较;
[0019] 当所述请求总次数小于等于预设的次数阈值时,所述终端对所述第二随机数进行加密,或,;
[0020] 当所述请求总次数大于预设的次数阈值时,所述终端对任意随机数进行加密。
[0021] 上述的方法,可选的,依据预设规则生成的验证码包括:
[0022] 对所述机器码进行加密,得到第二密文;
[0023] 获取当前时间和第三随机数;
[0024] 将所述第二密文、所述当前时间和所述第三随机数进行连接后与所述第一随机数进行异或,得到中间结果;
[0025] 将所述中间结果进行加密得到所述验证码。
[0026] 上述的方法,可选的,所述系统后台依据所述验证码进行验证,包括:
[0027] 对所述验证码进行解密,得到第二明文;
[0028] 将所述第二明文与所述第一随机数进行异或操作后进行分割,得到目标时间、机器码密文和第三随机数;
[0029] 判断所述目标时间是否满足预设的时长,若是,对所述机器码密文进行解密,得到第三明文;
[0030] 当所述第三明文与所述机器码一致时,登录所述系统后台。
[0031] 一种挑战码的实现装置,包括:
[0032] 第一发送模块,用于当系统后台接收到请求登录请求时,发送挑战码,其中,所述挑战码由第一随机数和机器码组成;
[0033] 接收和验证模块,用于本地终端接收所述挑战码,对所述挑战码的合理性进行验证;
[0034] 第二发送模块,用于若所述挑战码合理,将预设时长内所述挑战码的请求次数、所述机器码和第二随机数发送给远程终端;
[0035] 确定模块,用于所述远程终端依据所述请求次数、所述机器码和所述第二随机数,确定第一密文;
[0036] 发送和解密模块,用于将所述第一密文发送给所述本地终端,所述本地终端对所述第一密文进行解密,得到第一明文;
[0037] 第三发送模块,用于当所述第一明文与所述第二随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;
[0038] 验证模块,用于所述系统后台依据所述验证码进行验证。
[0039] 上述的装置,可选的,所述确定模块包括:
[0040] 确定单元,用于依据所述请求次数和所述机器码确定请求总次数;
[0041] 比较单元,用于将所述请求总次数与预设的次数阈值进行比较;
[0042] 第一加密单元,用于当所述请求总次数小于等于预设的次数阈值时,所述终端对所述第二随机数进行加密,或,;
[0043] 第二加密单元,用于当所述请求总次数大于预设的次数阈值时,所述终端对任意随机数进行加密。
[0044] 上述的装置,可选的,所述验证模块包括:
[0045] 解密单元,用于对所述验证码进行解密,得到第二明文;
[0046] 分割单元,用于将所述第二明文与所述第一随机数进行异或操作后进行分割,得到目标时间、机器码密文和第三随机数;
[0047] 判断和解密单元,用于判断所述目标时间是否满足预设的时长,若是,对所述机器码密文进行解密,得到第三明文;
[0048] 登录单元,用于当所述第三明文与所述机器码一致时,登录所述系统后台。
[0049] 一种挑战码的实现系统,包括:系统后台、本地终端和远程终端,其中:
[0050] 所述系统后台,用于接收登录请求、返回挑战码并对验证码进行验证;
[0051] 所述本地终端,用于对所述挑战码的合法性进行验证,若所述挑战码合理,将预设时长内挑战码的请求次数、所述机器码和第二随机数发送给远程终端,并接收所述远程终
端反馈的第一密文,对所述第一密文进行解密,得到第一明文,当所述第一明文与所述第二
随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;
[0052] 所述远程终端,用于依据所述请求次数、所述机器码和所述第二随机数,确定第一密文,将所述第一密文发送给所述本地终端。
[0053] 上述的系统,可选的,还包括:第三方终端,其中,所述第三方终端,用于发送所述登录请求,接收所述挑战码,将所述挑战码发送给所述本地终端,接收所述验证码,并将所
述验证码发送给所述系统后台,接收所述系统后台返回的结果。
[0054] 与现有技术相比,本发明包括以下优点:
[0055] 本发明公开了一种挑战码的实现方法,包括:当系统后台接收到请求登录请求时,发送挑战码,其中,挑战码由第一随机数和机器码组成;本地终端接收挑战码,若所述挑战
码合理,将预设时长内挑战码的请求次数、机器码和第二随机数发送给远程终端;所述远程
终端依据其确定第一密文;将第一密文发送给本地终端,本地终端对第一密文进行解密,得
到第一明文;当所述第一明文与所述第二随机数相同时,本地终端将依据预设规则生成的
验证码发送给系统后台;系统后台依据所述验证码进行验证。上述的方法中,接收挑战码和
生成验证码的均为本地终端,避免了在传递过程中可能发生错误,造成无法登录系统后台
的问题。
[0056] 当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

[0057] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0058] 图1为本申请实施例公开的一种挑战码的实现系统结构框图;
[0059] 图2为本申请实施例公开的一种挑战码的实现方法流程图;
[0060] 图3为本申请实施例公开的一种系统后台的执行流图;
[0061] 图4为本申请实施例公开的一种本地终端的执行流程图;
[0062] 图5为本申请实施例公开的一种远程终端的执行流程图;
[0063] 图6为本申请实施例公开的一种挑战码的实现装置结构框图。

具体实施方式

[0064] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0065] 本发明公开了一种挑战码的实现方法、装置及系统,应用在运维人员对系统后台进行登录的过程中,现有技术中,只需要由要系统后台生成一个挑战码,然后通过额外的内
部系统产生一个验证码。如果验证成功,就可以登录后台。根据场景的不同,传递挑战码和
负责生成验证码的可能是两个人,在传递过程中可能发生错误,造成无法登录系统后台。基
于上述的问题,本发明提供了一种挑战码实现系统,通过分离式的生成验证码的设计,可以
减少每次登录系统后台输入挑战码的繁琐步骤,仅需保证本地终端和远程终端保持链路通
畅。同时利用同态加密,记录某机器生成验证码的次数,避免信息的泄露,控制产生验证码
的频率。所述实现系统的结构框图如图1所示,系统后台101、本地终端102和远程终端103,
所述本地终端102可以为运维人员现场使用的电脑,所述远场终端可以为公司内部电脑。其
中:
[0066] 所述系统后台101,用于接收登录请求、返回挑战码并对验证码进行验证;
[0067] 所述本地终端102,用于对所述挑战码的合法性进行验证,若所述挑战码合理,将预设时长内挑战码的请求次数、所述机器码和第二随机数发送给远程终端,并接收所述远
程终端反馈的第一密文,对所述第一密文进行解密,得到第一明文,当所述第一明文与所述
第二随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;
[0068] 所述远程终端103,用于依据所述请求次数、所述机器码和所述第二随机数,确定第一密文,将所述第一密文发送给所述本地终端。
[0069] 本发明实施例中,所述实现系统还包括:第三方终端104,其中,所述第三方终端104,用于发送所述登录请求,接收所述挑战码,将所述挑战码发送给所述本地终端,接收所
述验证码,并将所述验证码发送给所述系统后台,接收所述系统后台返回的结果。
[0070] 基于上述的系统,本发明实施例中提供了一种挑战码的实现方法,所述实现方法的执行流程如图2所示,包括步骤:
[0071] S201、当系统后台接收到请求登录请求时,发送挑战码,其中,所述挑战码由第一随机数和机器码组成;
[0072] 本发明实施例中,所述系统后台101当前需要登录的系统的后台,其中,系统中包含有机器,当检测到登录请求时,所述系统后台101会发送挑战码,其中,所述挑战码由第一
随机数和机器码组成,所述机器码是指系统中机器的唯一编码,可以是第一张网卡MAC地址
的后三位或者是其它具有唯一标识的字符串。
[0073] S202、本地终端接收所述挑战码,对所述挑战码的合理性进行验证;
[0074] 本发明实施例中,依据所述实现系统,所述挑战码可以直接由所述系统后台发101送给所述本地终端,也可以将所述挑战码先发给所述第三方终端104后,再由所述第三方终
端104发送给所述本地终端102,因此,所述本地终端102可以是接收来自所述系统后台101
发送的挑战码,也可以是接收来自第三方终端104发送的挑战码。当所述本地终端102接收
到所述挑战码后,获取所述挑战码中的机器码,将所述机器码与预设的机器码的格式进行
比较。其中,所述机器码的长度已知,位置固定,直接在固定位置上获取所述机器码,将所述
机器码与预设的机器码的格式进行比较,判断两者的格式是否相同,其中,所述预设的机器
码格式是预先设定的。
[0075] S203、若所述挑战码合理,将预设时长内所述挑战码的请求次数、所述机器码和第二随机数发送给远程终端;
[0076] 本发明实施例中,当所述机器码与所述预设的机器码的格式相同时,所述本地终端102会产生一个第二随机数,同时获取预设时长内所述挑战码的请求次数,将所述请求次
数、所述机器码和所述第二随机数发送给所述远程终端103。
[0077] S204、所述远程终端依据所述请求次数、所述机器码和所述第二随机数,确定第一密文;
[0078] 本发明实施例中,所述远程终端103依据所述机器码,获取与所述机器码对应的数据库中的历史计算次数,将所述历史计算次数与所述请求次数相加,得到请求总次数,将所
述请求总次数与所述预设次数阈值进行比较,其中,所述预设的次数阈值可以依据经验或
者具体情况进行设定,本发明实施例中对所述预设的次数阈值的具体取值不进行限定,当
所述请求总次数小于等于预设的次数阈值时,所述终端对所述第二随机数进行加密,或,当
所述请求总次数大于预设的次数阈值时,所述终端对任意随机数进行加密,得到第一密文,
其中,加密方法可以采用国密非对称加密算法SM2。
[0079] S205、将所述第一密文发送给所述本地终端,所述本地终端对所述第一密文进行解密,得到第一明文;
[0080] 本发明实施例中,所述远程终端103将所述第一密文发送给所述本地终端102,所述本地终端102采用SM2方法对所述第一密文进行解密,得到第一明文,将所述第一明文与
所述第二随机数进行比较。
[0081] S206、当所述第一明文与所述第二随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;
[0082] 本发明实施例中,当所述第一明文与所述第二随机数相同时,所述本地终端102将依据预设规则生成的验证码发送给所述系统后台101,其中,依据预设规则生成的验证码的
过程包括:
[0083] S11、对所述机器码进行加密,得到第二密文;
[0084] 本发明实施例中,采用SM2和对应的私钥对所述机器码进行加密,得到第二密文。
[0085] S12、获取当前时间和第三随机数;
[0086] 本发明实施例,获取所述当前时间和所述本地终端102产生的第三随机数,其中,所述第三随机数用于避免产生的验证码中包含易混淆字符。
[0087] S13、将所述第二密文、所述当前时间和所述第三随机数进行连接后与所述第一随机数进行异或,得到中间结果;
[0088] 本发明实施例中,将所述第二密文、所述当前时间和所述第三随机数进行连接后与所述第一随机数进行异或操作,得到中间结果。
[0089] S14、将所述中间结果进行加密得到所述验证码。
[0090] 本发明实施例中,采用国密对称算法SM4对所述中间结果进行加密得到所述验证码。
[0091] 进一步的,对所述验证码进行检查,判断所述验证码中是否包含易混淆字符,若是,重新获取第三随机数,依据新的第三随机数,重新生成验证码。
[0092] 当所述第一明文与所述第二随机数不同时,返回错误码进行提示。
[0093] S207、所述系统后台依据所述验证码进行验证。
[0094] 本发明实施例中,所述系统后台101接收到所述验证码,对所述验证码进行验证,当验证通过时,登录所述系统后台101,反之,当验证不通过时,拒绝登录所述系统后台101。
验证过程如下:
[0095] S21、对所述验证码进行解密,得到第二明文;
[0096] 本发明实施例中,采用SM4算法对所述验证码进行解密,得到第二明文。
[0097] S22、将所述第二明文与所述第一随机数进行异或操作后进行分割,得到目标时间、机器码密文和第三随机数;
[0098] 本发明实施例中,将所述第二明文与所述第一随机数进行异或后分割,由于得到的异或结果中时间和随机数的位置和长度是已知的,直接依据对应的长度进行分割,得到
目标时间、机器码密文和第三随机数。
[0099] S23、判断所述目标时间是否满足预设的时长,若是,对所述机器码密文进行解密,得到第三明文;
[0100] 本发明实施例中,判断所述目标明文是否满足预设的时长,若是,若是,对所述机器码密文进行解密,得到第三明文,若否,返回错误信息。
[0101] S24、当所述第三明文与所述机器码一致时,登录所述系统后台。
[0102] 本发明公开了一种挑战码的实现方法,包括:当系统后台接收到请求登录请求时,发送挑战码,其中,挑战码由第一随机数和机器码组成;本地终端接收挑战码,若所述挑战
码合理,将预设时长内挑战码的请求次数、机器码和第二随机数发送给远程终端;所述远程
终端依据其确定第一密文;将第一密文发送给本地终端,本地终端对第一密文进行解密,得
到第一明文;当所述第一明文与所述第二随机数相同时,本地终端将依据预设规则生成的
验证码发送给系统后台;系统后台依据所述验证码进行验证。上述的方法中,接收挑战码和
生成验证码的均为本地终端,避免了在传递过程中可能发生错误,造成无法登录系统后台
的问题。
[0103] 本发明实施例中,分别站在所述系统后台101、本地终端102和远程终端103的角度对所述方法进行说明,针对所述系统后台,如图3所示,
[0104] S31、所述系统后台101部署着产生挑战码和验证验证码的程序和程序公钥1,挑战码私钥。能够产生第二的随机数和机器码。收到登录请求后,产生挑战码。
[0105] S32、收到验证码后,先解密获得第二明文m,在和第一随机数b进行异或操作后得到t1|Cm|r1,|其中,t1|Cm|r1代表着将各个二进制表示连接
[0106] 如果t1=001,Cm=111,那么t1|Cm=001111。
[0107] S33、将数据按预先规定好的位数分割后,获得目标时间t1和当前机器时间进行比较如果小于一小时认为合理。否则返回错误。
[0108] S34、对Cm,用挑战码私钥解密后判断是否和机器码保持一致,若一致,则登录系统后台,若不一致,则返回错误。
[0109] 针对所述本地终端,如图4所示,包括:
[0110] S41、本地终端上部署着验证挑战码和生成验证码的程序,和挑战码私钥,程序私钥1,程序私钥2、远程终端公钥。
[0111] S42、当验证码程序运行时与远程终端相应程序保持心跳。
[0112] S43、收到挑战码后,记录对应机器码次数,并且验证挑战码的合法性。如果不合法,直接返回错误码。
[0113] S44、如果合法,对机器码进行加密
[0114] S45、获得当前的时间t1,第一随机数b的二进制000000001101111111111111XOR t1|Cm|r1=V*,例如:
[0115] 101010 0010110100 11001
[0116] 目标时间t1 M的密文 第三随机数(用于保证结果密文没有易混淆字符)
[0117] S46、对V*进行加密获得V。
[0118] S47、然后跟远程终端进行通信,发送随机数r2,同态加密密文c,机器码M.
[0119] S48、等待远程终端的返回结果。如果返回的数据解密后等于之前发送的随机数r2,则输出验证码,如果不等于,则返回错误码。
[0120] 针对远程终端,如图5所示,包括:
[0121] S51、远程终端部署着记录计算次数的程序和远程终端私钥,程序私钥2,挑战码私钥。
[0122] S52、当验证码程序运行时,将和其保持心跳测试。
[0123] S53、当收到随机数r2,机器码M,检查对应验证码程序和机器码是否有不良记录,即前一段时间频繁产生验证码。
[0124] S54、如果不是,直接将计算次数c和数据库中对应M的次数相加。
[0125] S55、如果是,则取出数据库中的次数和收到的次数进行统计,如果超过阈值和返回错误数据。
[0126] S56、如果没有,则返回正确的r2密文,并且定时定期的对数据进行清除。
[0127] 本发明实施例中增加了同态加密的流程,使得产生验证码的次数以密文的形式存在于数据库,并且可以在密文上直接进行加法,在可信赖的条件下,无需解密在进行加法,
然后加密入库。进一步的,将生产验证码的程序可以部署在本地终端上,并且减少操作,无
需登陆额外的远程终端来处理挑战码。并且可以由同一个人处理,减少沟通上的错误。
[0128] 基于上述的实现方法,本发明实施例中,还提供了一种挑战码的实现装置,所述实现装置的结构框图如图6所示,包括:
[0129] 第一发送模块301、接收和验证模块302、第二发送模块303、确定模块304、发送和解密模块305、第三发送模块306和验证模块307。
[0130] 其中,
[0131] 所述第一发送模块301,用于当系统后台接收到请求登录请求时,发送挑战码,其中,所述挑战码由第一随机数和机器码组成;
[0132] 所述接收和验证模块302,用于本地终端接收所述挑战码,对所述挑战码的合理性进行验证;
[0133] 所述第二发送模块303,用于若所述挑战码合理,将预设时长内所述挑战码的请求次数、所述机器码和第二随机数发送给远程终端;
[0134] 所述确定模块304,用于所述远程终端依据所述请求次数、所述机器码和所述第二随机数,确定第一密文;
[0135] 所述发送和解密模块305,用于将所述第一密文发送给所述本地终端,所述本地终端对所述第一密文进行解密,得到第一明文;
[0136] 所述第三发送模块306,用于当所述第一明文与所述第二随机数相同时,所述本地终端将依据预设规则生成的验证码发送给所述系统后台;
[0137] 所述验证模块307,用于所述系统后台依据所述验证码进行验证。
[0138] 本发明公开了一种挑战码的实现装置,包括:当系统后台接收到请求登录请求时,发送挑战码,其中,挑战码由第一随机数和机器码组成;本地终端接收挑战码,若所述挑战
码合理,将预设时长内挑战码的请求次数、机器码和第二随机数发送给远程终端;所述远程
终端依据其确定第一密文;将第一密文发送给本地终端,本地终端对第一密文进行解密,得
到第一明文;当所述第一明文与所述第二随机数相同时,本地终端将依据预设规则生成的
验证码发送给系统后台;系统后台依据所述验证码进行验证。上述的装置中,接收挑战码和
生成验证码的均为本地终端,避免了在传递过程中可能发生错误,造成无法登录系统后台
的问题。
[0139] 本发明实施例中,所述确定模块304包括:
[0140] 确定单元308、比较单元309、第一加密单元310和第二加密单元311。
[0141] 其中,
[0142] 所述确定单元308,用于依据所述请求次数和所述机器码确定请求总次数;
[0143] 所述比较单元309,用于将所述请求总次数与预设的次数阈值进行比较;
[0144] 所述第一加密单元310,用于当所述请求总次数小于等于预设的次数阈值时,所述终端对所述第二随机数进行加密,或,;
[0145] 所述第二加密单元311,用于当所述请求总次数大于预设的次数阈值时,所述终端对任意随机数进行加密。
[0146] 本发明实施例中,所述验证模块307包括:
[0147] 解密单元312、分割单元313、判断和解密单元314和登录单元315。
[0148] 其中,
[0149] 所述解密单元312,用于对所述验证码进行解密,得到第二明文;
[0150] 所述分割单元313,用于将所述第二明文与所述第一随机数进行异或操作后进行分割,得到目标时间、机器码密文和第三随机数;
[0151] 所述判断和解密单元314,用于判断所述目标时间是否满足预设的时长,若是,对所述机器码密文进行解密,得到第三明文;
[0152] 所述登录单元315,用于当所述第三明文与所述机器码一致时,登录所述系统后台。
[0153] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。
[0154] 需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参
见方法实施例的部分说明即可。
[0155] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作
之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0156] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0157] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质
上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品
可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备
(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些
部分所述的方法。
[0158] 以上对本发明所提供的一种挑战码的实现方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于
帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思
想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对
本发明的限制。