CN117792684A - 数据验证方法、装置、计算机设备、存储介质 - Google Patents
数据验证方法、装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN117792684A CN117792684A CN202311611761.6A CN202311611761A CN117792684A CN 117792684 A CN117792684 A CN 117792684A CN 202311611761 A CN202311611761 A CN 202311611761A CN 117792684 A CN117792684 A CN 117792684A
- Authority
- CN
- China
- Prior art keywords
- character string
- verification
- string
- encryption algorithm
- graphic
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000013524 data verification Methods 0.000 title claims abstract description 35
- 238000012795 verification Methods 0.000 claims abstract description 297
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 102
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000004590 computer program Methods 0.000 claims abstract description 25
- 230000004044 response Effects 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 28
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005242 forging Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请涉及一种数据验证方法、装置、计算机设备、存储介质和计算机程序产品。所述方法应用于客户端,所述方法包括:响应于接收到账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到;展示所述图形验证码,并接收所述账户输入的验证字符串;将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端利用所述预设加密算法对所述验证字符串处理后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。采用本方法能够简化流程减小服务器端压力。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据验证方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在一些登录验证场景中,可以通过图形验证码登录。图形验证码登录时,一般通过登录服务获取页面端会话标识,并调用验证码生成服务,生成验证码图像和字符串;登录服务在数据容器中绑定字符串和会话标识,并将验证码图像地址发送给页面端;页面端展示验证码图像,并将用户输入的验证码字符串回传给登录服务;登录服务访问数据容器进行比对验证。
然而,通过这种方法进行图形验证码登录验证,生成验证码数据处理工作量大,登录过程中数据交互次数多,算力消耗大,服务器端压力较大。
发明内容
基于此,有必要针对上述技术问题,提供一种能够简化流程减小服务器端压力的数据验证方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据验证方法,所述方法应用于客户端,所述方法包括:
响应于接收到账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到;
展示所述图形验证码,并接收所述账户输入的验证字符串;
将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端利用所述预设加密算法对所述验证字符串处理后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
在其中一个实施例中,所述响应于账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到,包括:
响应于账户发送的验证指令,调用预设插件生成图形验证码和第一字符串,所述预设插件设置有预设加密算法,所述第一字符串为利用所述预设加密算法对所述图形验证码对应的字符串处理后得到。
在其中一个实施例中,所述生成第一字符串,包括:
确定所述图形验证码对应的生成时间戳;
根据所述生成时间戳,利用预设加密算法对所述图形验证码对应的字符串进行迭代运算后得到第一字符串。
在其中一个实施例中,所述根据所述生成时间戳,利用预设加密算法对所述图形验证码对应的字符串进行迭代运算后得到第一字符串,包括:
对所述生成时间戳进行取模运算,得到目标迭代次数;
根据所述账户的账户标识字符串和所述图形验证码对应的字符串,得到目标字符串;
按照预设哈希算法,对所述目标字符串进行所述目标迭代次数的哈希计算,得到第一字符串。
在其中一个实施例中,所述将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,包括:
将所述生成时间戳、所述第一字符串、所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
在其中一个实施例中,所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,包括:
所述服务器端接收所述生成时间戳;
所述服务器端在所述生成时间戳在预设时间范围以内的情况下,根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串。
第二方面,本申请还提供了一种数据验证装置,所述装置应用于客户端,所述装置包括:
生成模块,用于响应于接收到账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到;
展示模块,用于展示所述图形验证码,并接收所述账户输入的验证字符串;
接收模块,用于将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端利用所述预设加密算法对所述验证字符串处理后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
在其中一个实施例中,所述生成模块,包括:
第一生成子模块,用于响应于账户发送的验证指令,调用预设插件生成图形验证码和第一字符串,所述预设插件设置有预设加密算法,所述第一字符串为利用所述预设加密算法对所述图形验证码对应的字符串处理后得到。
在其中一个实施例中,所述生成模块,包括:
第一确定子模块,用于确定所述图形验证码对应的生成时间戳;
运算子模块,用于根据所述生成时间戳,利用预设加密算法对所述图形验证码对应的字符串进行迭代运算后得到第一字符串。
在其中一个实施例中,所述运算子模块,包括:
第一运算单元,用于对所述生成时间戳进行取模运算,得到目标迭代次数;
第二确定子模块,用于根据所述账户的账户标识字符串和所述图形验证码对应的字符串,得到目标字符串;
第二运算单元,用于按照预设哈希算法,对所述目标字符串进行所述目标迭代次数的哈希计算,得到第一字符串。
在其中一个实施例中,所述接收模块,包括:
接收子模块,用于将所述生成时间戳、所述第一字符串、所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
在其中一个实施例中,所述接收子模块中所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,包括:
所述服务器端接收所述生成时间戳;
所述服务器端在所述生成时间戳在预设时间范围以内的情况下,根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串。
第三方面,本公开实施例还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本公开实施例中任一项所述的方法的步骤。
第四方面,本公开实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本公开实施例中任一项所述的方法的步骤。
第五方面,本公开实施例还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开实施例中任一项所述的方法的步骤。
本公开实施例,在进行数据验证时,客户端接收到账户发送的验证指令后生成图形验证码和第一字符串,第一字符串为利用预设加密算法对图形验证码对应的字符串处理后得到,实现了在客户端生成验证码的过程,降低了服务器端的压力;得到图形验证码后,展示图形验证码并接收账户输入的验证字符串,将第一字符串和验证字符串发送至服务器端,接收服务器端发送的验证结果,在服务器端实现验证过程,且客户端和服务器端之间的数据交互过程简单,有效降低了数据处理压力;服务器端利用预设加密算法对验证字符串处理后生成第二字符串,并对第一字符串和第二字符串比对后得到验证结果,发送至客户端,从而能够根据客户端发送的数据进行验证,得到验证结果,降低了客户端伪造验证结果的风险,在降低服务器端工作量的同时,保证了验证过程的安全性,适用于更多应用场景。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据验证方法的应用环境图;
图2为一个实施例中数据验证方法的流程示意图;
图3为一个实施例中数据验证方法的流程示意图;
图4为一个实施例中数据验证方法的流程示意图;
图5为一个实施例中数据验证方法的流程示意图;
图6为一个实施例中数据验证装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据验证方法,可以应用于如图1所示的应用环境中。其中,客户端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。在数据验证过程中,客户端接收账户发送的验证指令,生成图形验证码,并利用预设加密算法对图形验证码对应的字符串处理后得到第一字符串;生成图形验证码后,客户端展示图形验证码,并接收账户输入的验证字符串,将第一字符串和验证字符串发送至服务器端;服务器端接收到第一字符串和验证字符串后,利用预设加密算法对验证字符串处理后生成第二字符串,并对第一字符串和第二字符串进行比对,得到验证结果,发送至客户端,从而实现了数据验证。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多台服务器组成的服务器集群来实现。
在一个示例性的实施例中,如图2所示,提供了一种数据验证方法,以该方法应用于图1中的客户端为例进行说明,所述方法包括:
步骤S210,响应于接收到账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到;
本公开实施例中,提供了一种应用于客户端的数据验证方法。响应于接收到账户发送的验证指令,生成图形验证码和第一字符串,其中,账户发送的验证指令可以为账户主动发送,也可以为根据账户的操作自动触发发送,例如,账户执行登录操作时,自动触发发送验证指令;进一步地,响应于账户的账号和密码输入的触发操作,自动触发发送验证指令。在接收到验证指令后,生成图形验证码和第一字符串,其中,图形验证码为根据事先设置的验证码生成方式生成得到,例如,可以通过预设插件实现图形验证码生成;可以通过预设程序文本实现图形验证码生成。本实施例中,图形验证码为根据字符串生成得到,因此,图形验证码对应有字符串,例如,图形验证码为包含“ttbr”的图形,则对应的字符串为“ttbr”。客户端利用预设加密算法对图形验证码对应的字符串处理后得到第一字符串,其中,预设加密算法为根据实际应用场景设置得到,例如,可以将预设加密算法设置为哈希算法,利用对应的哈希基对图形验证码对应的字符串进行处理后得到第一字符串,哈希基可以根据实际应用场景进行更新,以进一步提高数据验证的安全性和可靠性。在一个示例中,在利用图形验证码对应的字符串得到第一字符串时,还可以结合其他数据,包括但不限于账户标识字符串等,例如,可以根据图形验证码对应的字符串和账户标识字符串得到待处理字符串,利用预设加密算法对待处理字符串处理后得到第一字符串,其中,账户标识字符串可以为账号字符串。在一种可能的实现方式中,用户通过账户账号登录,触发验证指令的发送,客户端接收到验证指令,生成图形验证码,并根据账号字符串和图形验证码对应的字符串得到待处理字符串,利用预设加密算法对待处理字符串处理后得到第一字符串。
步骤S220,展示所述图形验证码,并接收所述账户输入的验证字符串;
本公开实施例中,得到图形验证码后,展示图形验证码,其中,可以在预设展示页面展示图形验证码。在一个示例中,展示图形验证码的同时,可以显示提示信息,以提示用户输入验证字符串。接收账户输入的验证字符串,在一个示例中,验证字符串为展示图形验证码后预设时长内接收得到。
步骤S230,将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端利用所述预设加密算法对所述验证字符串处理后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
本公开实施例中,得到验证字符串后,将第一字符串和验证字符串发送至服务器端,并接收服务器端发送的验证结果。具体地,服务器端接收到第一字符串和验证字符串后,利用预设加密算法对验证字符串处理后生成第二字符串,并对第一字符串和第二字符串进行比对,得到验证结果,其中,服务器端的预设加密算法和客户端的预设加密算法为相同的算法,例如,当预设加密算法对应为哈希算法时,服务器端和客户端对应相同的哈希基。在一个示例中,客户端还可以将账户标识字符串发送至服务器端,服务器端利用预设加密算法对验证字符串处理时,可以结合账户标识字符串得到第二字符串,其中,第二字符串的生成过程与第一字符串相似,具体可以参照上述实施例中第一字符串的生成过程。在一个示例中,第一字符串和第二字符串比对得到验证结果的过程可以为通过相似度得到,当第一字符串和第二字符串之间的相似度大于等于预设阈值时,可以认为验证结果为通过,将验证通过的验证结果发送至客户端;当第一字符串和第二字符串之间的相似度小于预设阈值时,可以认为验证结果为不通过,将验证不通过的验证结果发送至客户端,其中,预设阈值可以为根据实际应用场景设置得到,例如,可以直接将预设阈值设置为100%。
在一种可能的实现方式中,服务器端设置有登录服务,登录服务设置有登录接口,登录服务的作用包括:接收第一字符串、验证字符串、生成时间戳;判断生成时间戳是否位于预设时间范围内;根据生成时间戳、验证字符串、预设加密算法得到第二字符串;比对第一字符串和第二字符串,得到验证结果,并返回验证结果至客户端。其中,登录接口必要字段包括第一字符串、生成时间戳、验证字符串。
在一个实施例中,本实施例所述的方法可以应用于客户端的验证码生成校验器中,验证码生成校验器可以为通过预设插件实现,例如,可以通过JS调用WebAssembly接口实现验证码生成校验器的功能。其中,验证码生成校验器的功能包括:用于生成图形验证码;根据图形验证码对应的字符串生成第一字符串;根据登录信息(如账户账号、账户密码等)、验证字符串、第一字符串,构造登录请求体并返回至服务器端;对预设加密算法定期自动更新,确保算法的安全性和有效性。在一个示例中,登录请求体还包括生成时间戳,生成时间戳为验证码生成校验器生成图形验证码时对应的时间戳。本实施例中,通过WebAssembly接口构造登录请求体并返回至服务器端,降低了通过JS模式伪造登录请求体的风险,进而进一步提高了数据验证的安全性和可靠性。
本公开实施例,在进行数据验证时,客户端接收到账户发送的验证指令后生成图形验证码和第一字符串,第一字符串为利用预设加密算法对图形验证码对应的字符串处理后得到,实现了在客户端生成验证码的过程,降低了服务器端的压力;得到图形验证码后,展示图形验证码并接收账户输入的验证字符串,将第一字符串和验证字符串发送至服务器端,接收服务器端发送的验证结果,在服务器端实现验证过程,且客户端和服务器端之间的数据交互过程简单,有效降低了数据处理压力;服务器端利用预设加密算法对验证字符串处理后生成第二字符串,并对第一字符串和第二字符串比对后得到验证结果,发送至客户端,从而能够根据客户端发送的数据进行验证,得到验证结果,降低了客户端伪造验证结果的风险,在降低服务器端工作量的同时,保证了验证过程的安全性,适用于更多应用场景。
在一个实施例中,如图3所示,所述响应于账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到,包括:
步骤S211,响应于账户发送的验证指令,调用预设插件生成图形验证码和第一字符串,所述预设插件设置有预设加密算法,所述第一字符串为利用所述预设加密算法对所述图形验证码对应的字符串处理后得到。
本公开实施例中,可以通过预设插件实现验证码和字符串的生成。具体地,响应于账户发送的验证指令,调用预设插件生成图形验证码和第一字符串,预设插件中设置有预设加密算法,第一字符串为预设插件利用该预设加密算法对图形验证码对应的字符串处理后得到。在一个示例中,可以通过WebAssembly技术设置预设插件,响应于账户发送的验证请求,通过JS调用WebAssembly预设插件,预设插件利用预设加密算法对图形验证码对应的字符串处理后得到。在一种可能的实现方式中,在生成图形验证码时,先生成随机字符串,再通过openCV工具绘制随机数量长度粗细的线条,并进行高斯模糊,利用处理后的线条绘制出上述随机字符串,然后添加色点,得到图形验证码。
本公开实施例,客户端在接收到验证指令后,调用预设插件生成图形验证码和第一字符串,且预设插件设置有预设加密算法,预设插件可以利用预设加密算法对图形验证码对应的字符串处理后得到第一字符串,从而实现了通过插件在客户端生成图形验证码,实现方式简单,且插件源代码无法被直接反编译或查看,核心算法具有更高的安全性,不易被攻击或篡改,进而有效提高了数据验证过程的安全性,在降低服务器端数据处理压力的同时,保证了数据验证过程的安全性和可靠性。
在一个实施例中,如图4所示,所述生成第一字符串,包括:
步骤S212,确定所述图形验证码对应的生成时间戳;
步骤S213,根据所述生成时间戳,利用预设加密算法对所述图形验证码对应的字符串进行迭代运算后得到第一字符串。
本公开实施例中,结合生成时间戳和图形验证码对应的字符串得到第一字符串。具体地,确定图形验证码对应的生成时间戳,其中,可以事先设置时间戳获取功能,在生成图形验证码时,同时获取对应的生成时间戳。根据生成事件戳,利用预设加密算法对图形验证码对应的字符串进行迭代运算后得到第一字符串,其中,结合生成时间戳和预设加密算法对字符串进行迭代运算,可以使得不同情况下的第一字符串与生成时间戳相关联,进一步提高数据验证的可靠性和第一字符串的有效性。在一些可能的实现方式中,可以直接根据生成时间戳,利用预设加密算法对对应的字符串进行生成时间戳对应的次数的迭代运算,得到第一字符串;也可以对生成时间戳进行处理后得到目标迭代次数,例如取模运算后得到目标迭代次数,利用预设加密算法对对应的字符串进行目标迭代次数的迭代运算后得到第一字符串。
本公开实施例,根据图形验证码对应的生成时间戳,利用预设加密算法对图形验证码对应的字符串进行迭代运算后得到第一字符串,在进行验证的过程中,结合验证码生成时间戳得到待验证的字符串,进一步提高了数据验证的安全性和可靠性,从而保证了后续验证结果的准确性;且基于图形验证码对应的生成时间戳得到第一字符串,能够保证待验证字符串的唯一性,降低了第一字符串被篡改伪造的风险,适用于更多应用场景。
在一个实施例中,如图5所示,所述根据所述生成时间戳,利用预设加密算法对所述图形验证码对应的字符串进行迭代运算后得到第一字符串,包括:
步骤S2131,对所述生成时间戳进行取模运算,得到目标迭代次数;
步骤S2132,根据所述账户的账户标识字符串和所述图形验证码对应的字符串,得到目标字符串;
步骤S2133,按照预设哈希算法,对所述目标字符串进行所述目标迭代次数的哈希计算,得到第一字符串。
本公开实施例中,预设加密算法包括预设哈希算法。对生成时间戳进行取模运算,得到目标迭代次数,根据账户标识字符串和图形验证码对应的字符串,得到目标字符串,其中,可以将账户标识字符串和图形验证码对应的字符串组合后得到目标字符串。按照预设哈希算法,对目标字符串进行目标迭代次数的哈希计算,得到第一字符串。在一个示例中,根据实际应用场景设置有哈希基,将哈希基、账户标识字符串、图形验证码对应的字符串组合得到目标字符串。在一个示例中,对生成时间戳进行取模运算时,取模运算的除数可以为根据实际应用场景设置得到,例如可以设置为128。在一种可能的实现方式中,对生成时间戳进行取模运算后,可以得到整数I,若I为0,则赋值为1;对目标字符串进行I次哈希计算,得到第一字符串,其中,当取模运算的除数为128时,I为一个不大于128的整数。在一个示例中,预设哈希算法可以为SHA-256算法等。
本公开实施例,对生成时间戳进行取模运算,得到目标迭代次数,并按照预设哈希算法,对账户标识字符串和图形验证码对应的字符串组成的目标字符串进行目标迭代次数的哈希计算,得到第一字符串,通过生成时间戳和预设哈希算法相结合生成第一字符串,有效提高了生成字符串的安全性和可靠性,降低了被伪造的风险;且预设哈希算法可以根据实际应用场景设置,在客户端进行第一字符串的计算,实现方式简单,可靠性高,适用于更多应用场景。
在一个实施例中,所述将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,包括:
将所述生成时间戳、所述第一字符串、所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
本公开实施例中,将生成时间戳、第一字符串、验证字符串发送至服务器端,服务器端能够根据生成时间戳对验证字符串进行迭代运算后生成第二字符串,并对第一字符串和第二字符串比对后得到验证结果。本实施例中,第一字符串为根据生成时间戳和预设加密算法得到,因此,为了保证数据验证的有效性和可靠性,服务器端生成第二字符串时,也需要结合生成时间戳。客户端将生成时间戳、第一字符串、验证字符串发送至服务器端,以使得服务器端能够结合生成时间戳得到第二字符串。在一个示例中,第二字符串的生成方式与第一字符串的生成方式相同,例如,第二字符串也可以为根据生成时间戳取模运算后的目标迭代次数进行目标迭代次数的哈希计算后得到等。在一种可能的实现方式中,服务器端对生成时间戳进行取模运算,得到目标迭代次数,根据账户标识字符串和验证字符串,得到初始第二字符串,其中,可以将账户标识字符串和验证字符串组合后得到初始第二字符串。按照预设哈希算法,对初始第二字符串进行目标迭代次数的哈希计算,得到第二字符串。在一个示例中,根据实际应用场景设置有哈希基,将哈希基、账户标识字符串、验证字符串组合得到初始第二字符串。在一个示例中,对生成时间戳进行取模运算时,取模运算的除数可以为根据实际应用场景设置得到,例如可以设置为128。在一种可能的实现方式中,对生成时间戳进行取模运算后,可以得到整数I,若I为0,则赋值为1;对初始第二字符串进行I次哈希计算,得到第二字符串,其中,当取模运算的除数为128时,I为一个不大于128的整数。在一个示例中,预设哈希算法可以为SHA-256算法等。
本公开实施例,在发送第一字符串和验证字符串至服务器端时,将生成时间戳也发送至服务器端,以使得服务器端能够根据生成时间戳按照预设加密算法对验证字符串进行迭代运算得到第二字符串,从而对第一字符串和第二字符串比对后得到验证结果,从而能够实现在服务器端执行验证过程,保证了验证过程的安全性和可靠性,避免客户端伪造验证结果的风险;且通过服务器端生成的第二字符串和客户端生成的第一字符串进行验证,保证了验证结果的准确性。
在一个实施例中,所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,包括:
所述服务器端接收所述生成时间戳;
所述服务器端在所述生成时间戳在预设时间范围以内的情况下,根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串。
本公开实施例中,服务器端在生成第二字符串时,还会对生成时间戳进行判断。具体地,服务器端接收生成时间戳,在生成时间戳在预设时间范围以内的情况下,根据生成时间戳利用预设加密算法对验证字符串迭代运算后生成第二字符串,其中,预设时间范围为根据实际应用场景设置得到,预设时间范围可以设置为生成时间戳对应的时刻起预设时长,例如,可以将预设时间范围设置为生成时间戳对应的时刻起五分钟内。当生成时间戳在预设时间范围以外时,可以认为此时为恶意攻击,不执行后续的验证操作,直接返回验证不通过的验证结果至客户端。
本公开实施例,服务器端在接收到客户端发送的数据进行验证时,首先对生成时间戳进行判断,在生成时间戳在预设时间范围以内的情况下,执行第二字符串的生成流程,从而能够在时间戳的有效范围内进行验证,由于生成时间戳不在预设时间范围以内时存在恶意攻击的风险,本实施例通过预设时间范围的设置,有效降低恶意攻击的风险,进而保证了数据验证过程的安全性和可靠性,且有效排除生成时间戳在有效范围以外的验证请求,降低了数据处理的工作量,进一步缓解服务器端的数据处理压力,适用于更多应用场景。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据验证方法的数据验证装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据验证装置实施例中的具体限定可以参见上文中对于数据验证方法的限定,在此不再赘述。
在一个示例性的实施例中,如图6所示,提供了一种数据验证装置600,所述装置应用于客户端,所述装置包括:
生成模块610,用于响应于接收到账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到;
展示模块620,用于展示所述图形验证码,并接收所述账户输入的验证字符串;
接收模块630,用于将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端利用所述预设加密算法对所述验证字符串处理后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
在一个实施例中,所述生成模块,包括:
第一生成子模块,用于响应于账户发送的验证指令,调用预设插件生成图形验证码和第一字符串,所述预设插件设置有预设加密算法,所述第一字符串为利用所述预设加密算法对所述图形验证码对应的字符串处理后得到。
在一个实施例中,所述生成模块,包括:
第一确定子模块,用于确定所述图形验证码对应的生成时间戳;
运算子模块,用于根据所述生成时间戳,利用预设加密算法对所述图形验证码对应的字符串进行迭代运算后得到第一字符串。
在一个实施例中,所述运算子模块,包括:
第一运算单元,用于对所述生成时间戳进行取模运算,得到目标迭代次数;
第二确定子模块,用于根据所述账户的账户标识字符串和所述图形验证码对应的字符串,得到目标字符串;
第二运算单元,用于按照预设哈希算法,对所述目标字符串进行所述目标迭代次数的哈希计算,得到第一字符串。
在一个实施例中,所述接收模块,包括:
接收子模块,用于将所述生成时间戳、所述第一字符串、所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
在一个实施例中,所述接收子模块中所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,包括:
所述服务器端接收所述生成时间戳;
所述服务器端在所述生成时间戳在预设时间范围以内的情况下,根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串。
上述数据验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据验证方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据验证方法,其特征在于,所述方法应用于客户端,所述方法包括:
响应于接收到账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到;
展示所述图形验证码,并接收所述账户输入的验证字符串;
将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端利用所述预设加密算法对所述验证字符串处理后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
2.根据权利要求1所述的方法,其特征在于,所述响应于账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到,包括:
响应于账户发送的验证指令,调用预设插件生成图形验证码和第一字符串,所述预设插件设置有预设加密算法,所述第一字符串为利用所述预设加密算法对所述图形验证码对应的字符串处理后得到。
3.根据权利要求1所述的方法,其特征在于,所述生成第一字符串,包括:
确定所述图形验证码对应的生成时间戳;
根据所述生成时间戳,利用预设加密算法对所述图形验证码对应的字符串进行迭代运算后得到第一字符串。
4.根据权利要求3所述的方法,其特征在于,所述根据所述生成时间戳,利用预设加密算法对所述图形验证码对应的字符串进行迭代运算后得到第一字符串,包括:
对所述生成时间戳进行取模运算,得到目标迭代次数;
根据所述账户的账户标识字符串和所述图形验证码对应的字符串,得到目标字符串;
按照预设哈希算法,对所述目标字符串进行所述目标迭代次数的哈希计算,得到第一字符串。
5.根据权利要求3所述的方法,其特征在于,所述将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,包括:
将所述生成时间戳、所述第一字符串、所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
6.根据权利要求5所述的方法,其特征在于,所述服务器端根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串,包括:
所述服务器端接收所述生成时间戳;
所述服务器端在所述生成时间戳在预设时间范围以内的情况下,根据所述生成时间戳利用所述预设加密算法对所述验证字符串迭代运算后生成第二字符串。
7.一种数据验证装置,其特征在于,所述装置应用于客户端,所述装置包括:
生成模块,用于响应于接收到账户发送的验证指令,生成图形验证码和第一字符串,所述第一字符串为利用预设加密算法对所述图形验证码对应的字符串处理后得到;
展示模块,用于展示所述图形验证码,并接收所述账户输入的验证字符串;
接收模块,用于将所述第一字符串和所述验证字符串发送至服务器端,并接收所述服务器端发送的验证结果,其中,所述验证结果为所述服务器端利用所述预设加密算法对所述验证字符串处理后生成第二字符串,并对所述第一字符串和所述第二字符串比对后得到。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311611761.6A CN117792684A (zh) | 2023-11-28 | 2023-11-28 | 数据验证方法、装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311611761.6A CN117792684A (zh) | 2023-11-28 | 2023-11-28 | 数据验证方法、装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117792684A true CN117792684A (zh) | 2024-03-29 |
Family
ID=90397276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311611761.6A Pending CN117792684A (zh) | 2023-11-28 | 2023-11-28 | 数据验证方法、装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117792684A (zh) |
-
2023
- 2023-11-28 CN CN202311611761.6A patent/CN117792684A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113704357A (zh) | 一种基于区块链的智慧城市数据共享方法及系统 | |
CN114240347A (zh) | 业务服务安全对接方法、装置、计算机设备、存储介质 | |
KR20130027313A (ko) | 입력패턴을 이용한 인증 방법 및 시스템 | |
US8904508B2 (en) | System and method for real time secure image based key generation using partial polygons assembled into a master composite image | |
CN116049802B (zh) | 应用单点登陆方法、系统、计算机设备和存储介质 | |
CN114745173B (zh) | 登陆验证方法、装置、计算机设备和存储介质 | |
CN116684102A (zh) | 报文传输方法、报文校验方法、装置、设备、介质和产品 | |
CN114006705B (zh) | 数字签名处理方法、装置、计算机设备和存储介质 | |
CN114745178A (zh) | 身份认证方法、装置、计算机设备、存储介质和程序产品 | |
CN117792684A (zh) | 数据验证方法、装置、计算机设备、存储介质 | |
CN117078263A (zh) | 资源转移方法、装置、计算机设备和存储介质 | |
CN116150188A (zh) | 信息查询方法、装置、计算机设备和存储介质 | |
CN114614992B (zh) | 签名值输出及验证方法、装置、计算机设备、存储介质 | |
CN117544371A (zh) | 登录状态处理方法、装置和计算机设备 | |
CN117714099A (zh) | 一种反爬虫方法、装置、计算机设备和存储介质 | |
CN117521040A (zh) | 业务数据调用方法、装置、计算机设备和存储介质 | |
CN117113366A (zh) | 数字资产管理方法、装置、设备、存储介质和程序产品 | |
CN116112268A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN117436888A (zh) | 支付服务处理方法、装置、计算机设备和存储介质 | |
CN115738238A (zh) | 检测串号的方法、装置、计算机设备和存储介质 | |
CN114444095A (zh) | 目标数据获取方法、装置、设备、存储介质和程序产品 | |
CN116933244A (zh) | 请求处理方法、装置、终端、服务器和计算机程序产品 | |
CN116915434A (zh) | 基于RxJS的验证码异步获取方法、装置和计算机设备 | |
CN115757310A (zh) | 信用信息共享方法、装置、计算机设备和存储介质 | |
CN117879926A (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 |