CN113051585B - 一种数据校验方法、装置、电子设备和存储介质 - Google Patents
一种数据校验方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113051585B CN113051585B CN202110259085.5A CN202110259085A CN113051585B CN 113051585 B CN113051585 B CN 113051585B CN 202110259085 A CN202110259085 A CN 202110259085A CN 113051585 B CN113051585 B CN 113051585B
- Authority
- CN
- China
- Prior art keywords
- user
- salt value
- server
- target application
- digital signature
- 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
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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- 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/2137—Time limited access, e.g. to a computer or data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (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示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
需要提前说明的是,本申请实施例涉及到的装置或电子设备等可以执行在单个服务器上,也可以执行在服务器组。服务器组可以是集中式的,也可以是分布式的。在一些实施例中,服务器相对于终端,可以是本地的,也可以是远程的。例如,服务器可以经由网络访问存储在服务请求方终端、服务提供方终端、或数据库、或其任意组合中的信息和/或数据。作为另一示例,服务器可以直接连接到服务请求方终端、服务提供方终端和数据库中至少一个,以访问存储的信息和/或数据。在一些实施例中,服务器可以在云平台上实现;仅作为示例,云平台可以包括私有云、公有云、混合云、社区云(community cloud)、分布式云、跨云(inter-cloud)、多云(multi-cloud)等,或者它们的任意组合。
另外,本申请实施例涉及到的装置或电子设备可以执行在接入设备或者第三方设备上,具体可以包括:移动设备、平板计算机、膝上型计算机、或机动车辆中的内置设备等,或其任意组合。在一些实施例中,移动设备可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、或增强现实设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能电器设备的控制设备、智能监控设备、智能电视、智能摄像机、或对讲机等,或其任意组合。在一些实施例中,可穿戴设备可包括智能手环、智能头盔、智能手表、智能配件等、或其任何组合。在一些实施例中,智能移动设备可以包括智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏设备、导航设备等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、增强现实头盔等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括各种虚拟现实产品等。
实施例一
图1为本申请实施例一提供的一种数据校验方法的流程示意图,如图1所示,该数据校验方法包括:
步骤101、在第一用户通过第一用户端成功登录目标应用程序后,所述服务器随机生成第一盐值,将所述第一盐值分配给所述第一用户登录时使用的用户编码;其中,所述第一盐值的有效期限为所述第一用户本次登录所述目标应用程序的期间内。
具体的,所述服务器接收到第一用户在第一用户端的登录信息,根据登录信息中的用户密码,验证登录信息中的用户密码是否正确。当验证登录信息中的用户密码正确的时候,所述服务器允许第一用户在第一用户端登录目标应用程序,同时,所述服务器随机生成一个第一盐值,并将这个第一盐值分配给所述第一用户登录目标应用程序时使用的用户编码。每个第一用户在目标应用程序中的用户编码是唯一的,在第一用户本次登录目标应用程序期间内,该第一用户的用户编码与服务器分配的第一盐值保持对应关系。
步骤102、所述服务器对所述第一盐值进行存储,并将所述第一盐值通过所述目标应用程序发送给所述第一用户端,以使所述第一用户端保存所述第一盐值。
具体的,服务器中对用户编码、第一盐值以及用户编码与第一盐值的对应关系进行存储,并且能够对第一盐值进行修改、标记、删除等操作。在执行完步骤101之后,服务器能够将第一盐值发送给完成第一用户发送登录请求的第一用户端。
步骤103、所述服务器获取第二用户端通过所述目标应用程序发送的携带有第一数字签名、将要发布的信息、第二用户编码和目标应用程序版本号的发布请求;其中,所述第一数字签名为所述第二用户端根据本地存储的第二秘钥、第二盐值和所述将要发布的信息,按照散列算法生成的。
具体的,在执行完步骤102之后,所述第一用户端已经将服务器发送的第一盐值保存到本地。在第二用户在第二用户端向服务器发送发布请求之前,第二用户端要根据本地保存的与第二用户的用户编码对应的第二盐值、根据本地保存的与目标应用程序的版本号对应的第二秘钥以及将要发布的信息按照预设方法组装成字符串,并将组装成的字符串通过散列算法生成第一数字签名。其中,将要发布的信息,包括具体的信息内容、发送时间、发送地点等信息。
例如,生成第一数字签名的方法可以包括,按照第二盐值、第二秘钥、发送时间、发送地点、信息内容的顺序组装在一起,使用sha256摘要算法进行加密,生成第一数字签名。
在第二用户端生成第一数字签名之后,将携带有第一数字签名、将要发布的信息、第二用户编码和目标应用程序版本号的发布请求发送给服务器。
步骤104、所述服务器获取本地存储的与所述第二用户编码对应的第一盐值,以及本地存储的与所述目标应用程序版本号对应的第一秘钥。
秘钥包括第一秘钥、第二秘钥;盐值包括第一盐值、第二盐值。
秘钥和盐值都是由服务器生成的,服务器在生成盐值和秘钥的同时,对盐值和秘钥进行保存,并将与盐值与用户编码的对应关系、秘钥与应用程序版本号的对应关系保存到本地。
所述服务器能够对本地存储的秘钥、盐值进行管理,包括修改、标记、删除等操作。
步骤105、所述服务器根据所述第一盐值、所述第一秘钥和所述将要发布的信息,对所述第一数字签名进行数据校验。
具体的,采用与生成第一数字签名一致的方法生成第二数字签名,即所述服务器将第一盐值、第一秘钥和将要发布的信息组装起来,通过sha256摘要算法加密成第二数字签名。
将第一数字签名和第二数字签名进行对比,通过对比结果得到校验结果。
步骤106、在校验通过后,所述服务器将所述将要发布的信息进行发布。
校验通过后,服务器对将要发布的信息进行发布,并将信息发布成功的界面发送给用户端,面向用户进行显示。
校验不通过后,服务器将信息发布失败所对应的界面发送给用户端,面向用户进行显示。
本申请实施例在用户成功登录用户端时,服务器随机生成一个盐值,将这个盐值分配给当前登录信息验证通过的用户所对应的用户编码,并把这个盐值发送到用户端,使得用户在本次登录期间内,该用户的用户编码与服务器分配的盐值保持对应关系。用户在用户端发出消息发送请求的时候,用户端就会将本地存储的秘钥、用户登录时被分配的与用户编码对应的盐值,以及消息发送请求中的信息,通过算法加密成数字签名,然后将消息发送请求、应用程序的版本号、用户编码以及数字签名发送给服务器。服务器根据接收到的应用程序版本号从本地查找与该应用程序版本号对应的秘钥,根据用户编码从本地查找与该用户编码对应的盐值,对接收到的数字签名进行校验。
在上述过程中,数字签名的生成需要盐值的参与,由于服务器分配给用户编码的盐值的有效期限为用户本次登录目标应用程序的期间内,因此即使该盐值被非法破解,在用户退出本次登录后,该盐值也已经超过了有效期限,无法再次生成正确的数字签名。通过加入动态盐值,能够解决数字签名容易被长期伪造并发送非法消息。
在一个可行的实施方案中,在执行步骤101之前,服务器根据第三用户端当前使用的目标应用程序的目标应用程序版本号,为所述目标应用程序版本号生成对应的秘钥,所述秘钥包括所述第一秘钥或第二秘钥,所述第三用户端包括所述第一用户端或所述第二用户端;所述服务器将所述秘钥发送给所述第三用户端,以使所述第三用户端对所述秘钥进行保存。
具体的,服务器负责生成秘钥,本申请实施例中使用的其中一个方法是服务器根据目标应用程序的目标应用程序版本号随机生成秘钥。
例如,在新版本的应用程序发布之前,所述服务器根据接收到打包单元发送的应用程序版本号,随机生成秘钥;其中,所述秘钥与所述应用程序的版本号保持对应关系。
所述服务器将所述秘钥发送到打包单元,以使打包单元将所述秘钥写入到所述应用程序中,并对所述携带有秘钥的目标应用程序面向用户端进行发布。
所述服务器能对生成的所述秘钥进行删除、修改、标记等操作。
例如,当服务器识别出用户端执行了非法操作时,可以对与所述用户端对应的秘钥进行标记,以便服务器执行后续的识别、隔离或删除等操作。
用户端下载所述目标应用程序之后将秘钥保存在本地。
在一个可行的实施方案中,在执行步骤101之后,在所述第一用户退出本次登录后,所述服务器将所述第一盐值修改为空字符串。
具体的,为了确保盐值的动态特性,使得所述第一用户每次登录时用户编码对应的是不同的盐值,需要在用户退出登录时对所述第一用户的用户编码所对应的第一盐值进行编辑,编辑方法包括将所述第一盐值修改为空字符串,对所述第一盐值进行删除等操作。
当所述第一用户被服务器识别为风险用户的时候,服务器能够将所述第一用户的用户编码所对应的第一盐值进行标记;或者,根据判断出的非法操作,将与所述第一盐值对应的用户编码进行标记;以便服务器执行后续的识别、隔离或删除等操作。
对于没有进行登录的用户,把他们作为临时用户,由于临时用户未进行登录,也没有用户编码,因此服务器无法根据登录信息随机生成一个盐值并分配给用户编码,因此当用户端没有接收到服务器发送的盐值时,本地自动将临时用户的盐值保存为空字符串。
在一个可行的实施方案中,图2为本申请实施例所提供的另一种数据校验方法的流程图,如图2所示,执行步骤105时,可以通过以下步骤实现:
步骤201、所述服务器根据所述第一盐值、所述第一秘钥和所述将要发布的信息,按照散列算法生成第二数字签名。
具体的,在执行完步骤104之后,所述服务器根据接收到的第二用户编码在本地中查找与该第二用户编码对应的第一盐值,根据接收到的所述目标应用程序版本号在本地中查找与目标应用程序版本号对应的第一秘钥。
当服务器在本地没有找到与接收到的用户编码对应第一盐值时,根据预设规则将与该用户编码对应的第一盐值设置为空字符串;当服务器在本地没有找到与接收到的目标应用程序版本号对应的第一秘钥时,根据预设规则将与目标应用程序版本号对应的第一秘钥设置为空字符串,可以对预设规则进行修改。
采用与生成第一数字签名一致的方法生成第二数字签名,即按照第一盐值、第一秘钥、发送时间、发送地点、信息内容的顺序组装在一起,使用sha256摘要算法进行加密,生成第二数字签名。
步骤202、所述服务器将所述第二数字签名与所述第一数字签名进行对比。
具体的,若所述第二数字签名与所述第一数字签名一致,则进入步骤203;若所述第二数字签名与所述第一数字签名不一致,则进入步骤204。
步骤203、校验通过。
具体的,数据校验通过以后,服务器认为用户的请求是合法的。
步骤204、校验不通过。
数据校验不通过时,服务器认为用户的请求是非法的。
实施例二
参照图3所示,为本申请实施例二提供的另一种数据校验方法的示意图,如图3所示,该数据校验方法包括:
步骤301、在接收到服务器发送的盐值之后,用户端对所述盐值进行保存;其中,所述盐值是在用户通过所述用户端成功登录目标应用程序后,由所述服务器随机生成,并分配给用户编码的;所述盐值的有效期限为所述用户本次登录所述目标应用程序的期间内。
具体的,所述服务器接收到用户在用户端的登录信息,根据登录信息中的用户密码,验证登录信息中的用户密码是否正确。当验证登录信息中的用户密码正确的时候,服务器允许用户在用户端登录目标应用程序,同时,随机生成一个盐值,并将这个盐值分配给上述用户登录目标应用程序时使用的用户编码。每个用户在目标应用程序中的用户编码是唯一的,在用户本次登录目标应用程序期间内,该用户的用户编码与服务器分配的盐值保持对应关系。
服务器将所述盐值发送给用户端,用户端将接收到的盐值保存到本地。
步骤302、所述用户端根据本地存储的秘钥、所述盐值和将要发布的信息,按照散列算法生成数字签名。
具体的,生成第一数字签名的方法可以包括,按照第二盐值、第二秘钥、发送时间、发送地点、信息内容的顺序组装在一起,使用sha256摘要算法进行加密,生成第一数字签名。
步骤303、所述用户端通过所述目标应用程序将携带有所述数字签名、所述将要发布的信息、所述用户编码和目标应用程序版本号的发布请求发送到所述服务器。
具体的,所述用户端将发布请求发送到所述服务器之后,所述服务器还要对用户端发送的发送请求进行校验,校验通过后,对所述将要发布的信息进行发布。
实施例三
参照图4所示,为本申请实施例三提供的一种数据校验装置的示意图,所述装置应用于服务器,包括:盐值管理单元41、信息接收单元42、数据校验单元43、信息发布单元44。
盐值管理单元41,用于在第一用户通过第一用户端成功登录目标应用程序后,服务器随机生成第一盐值,将所述第一盐值分配给所述第一用户登录时使用的用户编码;其中,所述第一盐值的有效期限为所述第一用户本次登录所述目标应用程序的期间内;所述服务器对所述第一盐值进行存储,并将所述第一盐值通过所述目标应用程序发送给所述第一用户端,以使所述第一用户端保存所述第一盐值。
信息接收单元42,用于获取第二用户端通过所述目标应用程序发送的携带有第一数字签名、将要发布的信息、第二用户编码和目标应用程序版本号的发布请求;其中,所述第一数字签名为所述第二用户端根据本地存储的第二秘钥、第二盐值和所述将要发布的信息,按照散列算法生成的。
数据校验单元43,用于获取本地存储的与所述第二用户编码对应的第一盐值,以及本地存储的与所述目标应用程序版本号对应的第一秘钥;服务器根据所述第一盐值、所述第一秘钥和所述将要发布的信息,对所述第一数字签名进行数据校验。
信息发布单元44,在校验通过后,所述服务器将所述将要发布的信息进行发布。
在一个可行的实施方案中,所述盐值管理单元41用于在所述第一用户退出本次登录后,所述服务器将所述第一盐值修改为空字符串。
在一个可行的实施方案中,在所述服务器随机生成第一盐值之前,还包括秘钥管理单元,用于根据所述第三用户端当前使用的目标应用程序的目标应用程序版本号,为所述目标应用程序版本号生成对应的秘钥,所述秘钥包括所述第一秘钥或第二秘钥,所述第三用户端包括所述第一用户端或所述第二用户端;所述服务器将所述秘钥发送给所述第三用户端,以使所述第三用户端对所述秘钥进行保存。
在一个可行的实施方案中,所述数据校验单元43,用于根据所述第一盐值、所述第一秘钥和所述将要发布的信息,按照散列算法生成第二数字签名。
所述服务器将所述第二数字签名与所述第一数字签名进行对比。若所述第二数字签名与所述第一数字签名一致,则校验通过;若所述第二数字签名与所述第一数字签名不同,则校验不通过。
在一个可行的实施方案中,所述信息发布单元44,用于在校验通过后,所述服务器将所述将要发布的信息进行发布。
实施例四
参照图5所示,为本申请实施例四提供的另一种数据校验装置的示意图,所述装置应用于用户端,包括:盐值存储单元51、数字签名单元52、信息发送单元53。
盐值存储单元51,在接收到服务器发送的盐值之后,用户端对所述盐值进行保存;其中,所述盐值是在用户通过所述用户端成功登录目标应用程序后,由所述服务器随机生成,并分配给用户编码的;所述盐值的有效期限为所述用户本次登录所述目标应用程序的期间内。
数字签名单元52,所述用户端根据本地存储的秘钥、所述盐值和将要发布的信息,按照散列算法生成数字签名。
信息发送单元53,所述用户端通过所述目标应用程序将携带有所述数字签名、所述将要发布的信息、所述用户编码和目标应用程序版本号的发布请求发送到所述服务器,以使所述服务器在对所述数字签名验证通过后,对所述将要发布的信息进行发布。
本申请实施例在用户成功登录用户端时,服务器随机生成一个盐值,将这个盐值分配给当前登录信息验证通过的用户所对应的用户编码,并把这个盐值发送到用户端,使得用户在本次登录期间内,该用户的用户编码与服务器分配的盐值保持对应关系。用户在用户端发出消息发送请求的时候,用户端就会将本地存储的秘钥、用户登录时被分配的与用户编码对应的盐值,以及消息发送请求中的信息,通过算法加密成数字签名,然后将消息发送请求、应用程序的版本号、用户编码以及数字签名发送给服务器。服务器根据接收到的应用程序版本号从本地查找与该应用程序版本号对应的秘钥,根据用户编码从本地查找与该用户编码对应的盐值,对接收到的数字签名进行校验。
在上述过程中,数字签名的生成需要盐值的参与,由于服务器分配给用户编码的盐值的有效期限为用户本次登录目标应用程序的期间内,因此即使该盐值被非法破解,在用户退出本次登录后,该盐值也已经超过了有效期限,无法再次生成正确的数字签名。通过加入动态盐值,能够解决数字签名容易被长期伪造并发送非法消息。
实施例五
图6为本申请实施例五提供的一种电子设备的结构示意图,包括:处理器601、存储介质602和总线603,所述存储介质602存储有所述处理器601可执行的机器刻度指令,当电子设备运行上述的数据验证方法时,所述处理器601与所述存储介质602之间通过总线603通信,所述处理器601执行所属机器可读指令,以执行如实施例一或实施例二中的步骤。
在本申请实施例中,所述存储介质602还可以执行其它机器可读指令,以执行如实施例一或实施例二中其它所述的方法,关于具体执行的方法步骤和原理参见实施例一或实施例二的说明,在此不再详细赘述。
实施例六
本申请实施例六还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,以执行如实施例一或实施例二中的步骤。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例一或实施例二中其它所述的方法,关于具体执行的方法步骤和原理参见实施例一或实施例二的说明,在此不再详细赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据校验方法,其特征在于,所述方法包括:
在第一用户通过第一用户端成功登录目标应用程序后,服务器随机生成第一盐值,将所述第一盐值分配给所述第一用户登录时使用的用户编码;其中,所述第一盐值的有效期限为所述第一用户本次登录所述目标应用程序的期间内;
所述服务器对所述第一盐值进行存储,并将所述第一盐值通过所述目标应用程序发送给所述第一用户端,以使所述第一用户端保存所述第一盐值;
所述服务器获取第二用户端通过所述目标应用程序发送的携带有第一数字签名、将要发布的信息、第二用户编码和目标应用程序版本号的发布请求;其中,所述第一数字签名为所述第二用户端根据本地存储的第二秘钥、第二盐值和所述将要发布的信息,按照散列算法生成的;
所述服务器获取本地存储的与所述第二用户编码对应的第一盐值,以及本地存储的与所述目标应用程序版本号对应的第一秘钥;
所述服务器根据所述第一盐值、所述第一秘钥和所述将要发布的信息,对所述第一数字签名进行数据校验;
在校验通过后,所述服务器将所述将要发布的信息进行发布。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一用户退出本次登录后,所述服务器将所述第一盐值修改为空字符串。
3.根据权利要求1所述的方法,其特征在于,在所述服务器随机生成第一盐值之前,所述方法还包括:
服务器根据第三用户端当前使用的目标应用程序的目标应用程序版本号,为所述目标应用程序版本号生成对应的秘钥,所述秘钥包括所述第一秘钥或第二秘钥,所述第三用户端包括所述第一用户端或所述第二用户端;
所述服务器将所述秘钥发送给所述第三用户端,以使所述第三用户端对所述秘钥进行保存。
4.根据权利要求1所述的方法,其特征在于,所述服务器根据所述第一盐值和所述第一秘钥,对所述第一数字签名进行数据校验,包括:
所述服务器根据所述第一盐值、所述第一秘钥和所述将要发布的信息,按照散列算法生成第二数字签名;
所述服务器将所述第二数字签名与所述第一数字签名进行对比;
若所述第二数字签名与所述第一数字签名一致,则校验通过;
若所述第二数字签名与所述第一数字签名不同,则校验不通过。
5.一种数据校验方法,其特征在于,包括:
在接收到服务器发送的盐值之后,用户端对所述盐值进行保存;其中,所述盐值是在用户通过所述用户端成功登录目标应用程序后,由所述服务器随机生成,并分配给用户编码的;所述盐值的有效期限为所述用户本次登录所述目标应用程序的期间内;
所述用户端根据本地存储的秘钥、所述盐值和将要发布的信息,按照散列算法生成数字签名;
所述用户端通过所述目标应用程序将携带有所述数字签名、所述将要发布的信息、所述用户编码和目标应用程序版本号的发布请求发送到所述服务器,以使所述服务器在对所述数字签名验证通过后,对所述将要发布的信息进行发布。
6.一种数据校验装置,其特征在于,所述数据校验装置应用于服务器,包括:
盐值管理单元,用于在第一用户通过第一用户端成功登录目标应用程序后,服务器随机生成第一盐值,将所述第一盐值分配给所述第一用户登录时使用的用户编码;其中,所述第一盐值的有效期限为所述第一用户本次登录所述目标应用程序的期间内;所述服务器对所述第一盐值进行存储,并将所述第一盐值通过所述目标应用程序发送给所述第一用户端,以使所述第一用户端保存所述第一盐值;
信息接收单元,用于获取第二用户端通过所述目标应用程序发送的携带有第一数字签名、将要发布的信息、第二用户编码和目标应用程序版本号的发布请求;其中,所述第一数字签名为所述第二用户端根据本地存储的第二秘钥、第二盐值和所述将要发布的信息,按照散列算法生成的;
数据校验单元,用于获取本地存储的与所述第二用户编码对应的第一盐值,以及本地存储的与所述目标应用程序版本号对应的第一秘钥;服务器根据所述第一盐值、所述第一秘钥和所述将要发布的信息,对所述第一数字签名进行数据校验;
信息发布单元,在校验通过后,所述服务器将所述将要发布的信息进行发布。
7.根据权利要求6所述的装置,其特征在于,还包括:
秘钥管理单元,服务器根据第三用户端当前使用的目标应用程序的目标应用程序版本号,为所述目标应用程序版本号生成对应的秘钥,所述秘钥包括所述第一秘钥或第二秘钥,所述第三用户端包括所述第一用户端或所述第二用户端;所述服务器将所述秘钥发送给所述第三用户端,以使所述第三用户端对所述秘钥进行保存。
8.一种数据校验装置,其特征在于,所述数据校验装置应用于用户端,包括:
盐值存储单元,在接收到服务器发送的盐值之后,用户端对所述盐值进行保存;其中,所述盐值是在用户通过所述用户端成功登录目标应用程序后,由所述服务器随机生成,并分配给用户编码的;所述盐值的有效期限为所述用户本次登录所述目标应用程序的期间内;
数字签名单元,所述用户端根据本地存储的秘钥、所述盐值和将要发布的信息,按照散列算法生成数字签名;
信息发送单元,所述用户端通过所述目标应用程序将携带有所述数字签名、所述将要发布的信息、所述用户编码和目标应用程序版本号的发布请求发送到所述服务器,以使所述服务器在对所述数字签名验证通过后,对所述将要发布的信息进行发布。
9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至4中任一项所述数据校验方法或是如权利要求5所述的数据校验方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至4中任一项所述数据校验方法的步骤或是如权利要求5所述的数据校验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110259085.5A CN113051585B (zh) | 2021-03-10 | 2021-03-10 | 一种数据校验方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110259085.5A CN113051585B (zh) | 2021-03-10 | 2021-03-10 | 一种数据校验方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113051585A CN113051585A (zh) | 2021-06-29 |
CN113051585B true CN113051585B (zh) | 2022-05-13 |
Family
ID=76511249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110259085.5A Active CN113051585B (zh) | 2021-03-10 | 2021-03-10 | 一种数据校验方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051585B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114430346B (zh) * | 2022-01-27 | 2023-09-05 | 亿咖通(湖北)技术有限公司 | 登录方法、装置及电子设备 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7841000B2 (en) * | 2006-10-16 | 2010-11-23 | Lenovo (Singapore) Pte. Ltd. | Authentication password storage method and generation method, user authentication method, and computer |
WO2013036946A1 (en) * | 2011-09-09 | 2013-03-14 | Stoneware, Inc. | Method and apparatus for key sharing over remote desktop protocol |
US10373426B2 (en) * | 2015-09-23 | 2019-08-06 | Spur Trail Investments, Inc. | System and method for provably fair gaming |
CN106612180B (zh) * | 2015-10-26 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 实现会话标识同步的方法及装置 |
US10498541B2 (en) * | 2017-02-06 | 2019-12-03 | ShocCard, Inc. | Electronic identification verification methods and systems |
CN107911383A (zh) * | 2017-12-04 | 2018-04-13 | 鼎点视讯科技有限公司 | 一种密码校验方法和装置 |
CN108494551A (zh) * | 2018-03-16 | 2018-09-04 | 数安时代科技股份有限公司 | 基于协同密钥的处理方法、系统、计算机设备及存储介质 |
CN109450622A (zh) * | 2018-10-16 | 2019-03-08 | 平安普惠企业管理有限公司 | 数据加密方法、数据校验方法、装置、设备及存储介质 |
CN109981285B (zh) * | 2019-03-11 | 2020-10-09 | 北京纬百科技有限公司 | 一种口令保护方法、口令校验方法及系统 |
CN110493207B (zh) * | 2019-08-06 | 2022-02-25 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、电子设备和存储介质 |
CN110689415B (zh) * | 2019-10-14 | 2023-01-10 | 湖南七海信息科技有限公司 | 一种公共资源交易平台管理系统 |
CN110909340B (zh) * | 2019-11-25 | 2022-03-01 | 北京明略软件系统有限公司 | 一种登录处理方法、系统、装置、电子设备及存储介质 |
CN111865889B (zh) * | 2019-12-10 | 2022-08-26 | 北京嘀嘀无限科技发展有限公司 | 登录请求处理方法、系统、装置、电子设备及存储介质 |
CN111314321A (zh) * | 2020-01-21 | 2020-06-19 | 深圳前海环融联易信息科技服务有限公司 | 参数加密管理方法、装置、计算机设备及存储介质 |
CN111984978B (zh) * | 2020-08-13 | 2022-11-29 | 成都安恒信息技术有限公司 | 一种高扩展性密码加密存储方法 |
-
2021
- 2021-03-10 CN CN202110259085.5A patent/CN113051585B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113051585A (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542888B (zh) | 区块链的数据修改和同步方法、装置、设备及存储介质 | |
CN114726643B (zh) | 云平台上的数据存储、访问方法及装置 | |
CN110049016B (zh) | 区块链的数据查询方法、装置、系统、设备及存储介质 | |
CN112671720B (zh) | 一种云平台资源访问控制的令牌构造方法、装置及设备 | |
CN112165382B (zh) | 软件授权方法、装置、授权服务端及终端设备 | |
CN112115205B (zh) | 基于数字证书认证的跨链信任方法、装置、设备以及介质 | |
CN113505354B (zh) | 一种数据处理方法、装置及存储介质 | |
CN109213901A (zh) | 一种区块链的数据同步方法、装置、设备及介质 | |
CN112311779B (zh) | 应用于区块链系统的数据访问控制方法及装置 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN104717224A (zh) | 一种登录方法及装置 | |
CN111191218A (zh) | 一种授权认证方法及装置 | |
CN112291201A (zh) | 业务请求的传输方法及装置、电子设备 | |
CN110740038A (zh) | 区块链及其通信方法、网关、通信系统和存储介质 | |
CN110990863B (zh) | 一种通过时间戳与加密算法实现文件访问控制的方法 | |
CN111585995A (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN113051585B (zh) | 一种数据校验方法、装置、电子设备和存储介质 | |
CN108846671B (zh) | 基于区块链的在线安全交易方法和系统 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN103559430A (zh) | 基于安卓系统的应用账号管理方法和装置 | |
CN108234491B (zh) | 协议关联验证方法、装置及电子设备 | |
CN115021995B (zh) | 多渠道登录方法、装置、设备及存储介质 | |
CN110618989A (zh) | 信息处理方法、信息处理装置及相关产品 | |
CN115567271A (zh) | 鉴权方法和装置、页面跳转方法和装置、电子设备及介质 | |
CN115086090A (zh) | 基于UKey的网络登录认证方法及装置 |
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 | ||
CP03 | Change of name, title or address |
Address after: Room 101 (201) -6, Building 5, Building 6 and 7, Kexin Building, Shounan Street, Yinzhou District, Ningbo City, Zhejiang Province, 315100 Patentee after: Zhejiang Xiaoliu Information Technology Co.,Ltd. Address before: Room 1401-1, No.6 and No.7, building 5, Kexin building, Shounan street, Yinzhou District, Ningbo City, Zhejiang Province, 315000 Patentee before: NINGBO LIUBIKE INFORMATION TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |