CN116094718A - 一种数据传输方法、装置、电子设备和存储介质 - Google Patents
一种数据传输方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116094718A CN116094718A CN202211124838.2A CN202211124838A CN116094718A CN 116094718 A CN116094718 A CN 116094718A CN 202211124838 A CN202211124838 A CN 202211124838A CN 116094718 A CN116094718 A CN 116094718A
- Authority
- CN
- China
- Prior art keywords
- signature
- generating
- encryption
- parameter information
- character string
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种数据传输方法、装置、电子设备和可读存储介质,所述方法包括:获取客户端的传输数据、针对所述传输数据的数据签名以及生成所述数据签名所采用的签名参数信息;采用所述第一签名参数信息生成第三签名,以及采用所述第二签名参数信息生成第四签名;若所述第一签名与所述第三签名一致,且所述第二签名与所述第四签名一致,则确定两层签名验证成功,允许对所述传输数据进行数据处理操作。通过采用上述方法,需要经过两层签名验证才能真正签名验证成功,大大提升了签名验证的安全性,且两层签名所采用的加密密钥信息不同,解决了现有签名算法中仅仅对传输数据相关参数生成单层签名,密钥被他人获得后容易被攻破的问题。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据传输方法、一种数据传输装置、一种电子设备和一种计算机可读存储介质。
背景技术
一般采用签名的方式确保信息不可抵赖,例如,合同谈判、银行取款等,都采用了用户签名的形式。签名认证是对非对称加密技术与数字摘要技术的综合运用,指的是将通信内容的摘要信息使用发送者的私钥进行加密,然后将密文与原文一起传输给信息的接收者,接收者通过发送者的公钥信息来解密被加密的摘要作息,然后使用与发送者相同的摘要算法,对接收到的内容采用相同的方式产生摘要串,与解密的摘要串进行对比,如果相同,则说明接收到的内容是完整的,在传输过程中没有受到第三方的篡改,否则说明通信内容已被第三方修改。每个签名都有其特有的私钥,且都是对外界保密的,而通过私钥加密的信息,只能通过其对应的公钥来进行解密。因此,私钥可以代表私钥持有者的身份,可以通过私钥对应的公钥来对私钥拥有者的身份进行校验。常用的签名算法有MD5算法、SHA-1算法、SHA-256算法和慢哈希Bcrypt算法等,然而这些签名算法的密钥被他人获得后很大概率可以攻破该密钥对应的签名。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据传输方法和相应的一种数据传输装置、一种电子设备,以及一种计算机可读存储介质。
本发明实施例公开了一种数据传输方法,所述方法包括:
获取客户端的传输数据、针对所述传输数据的数据签名以及生成所述数据签名所采用的签名参数信息;所述数据签名包括第一签名和第二签名;所述签名参数信息包括生成所述第一签名的第一签名参数信息,以及生成所述第二签名的第二签名参数信息;
采用所述第一签名参数信息生成第三签名,以及采用所述第二签名参数信息生成第四签名;其中,生成所述第三签名所采用的加密密钥信息与生成所述第四签名所采用的加密密钥信息不同;
若所述第一签名与所述第三签名一致,且所述第二签名与所述第四签名一致,则确定两层签名验证成功,允许对所述传输数据进行数据处理操作。
可选地,所述第一签名和所述第三签名基于对密码签名得到,所述第一签名参数信息包括加密密钥、加密规则、密码和加密时间,所述采用所述第一签名参数信息生成第三签名,包括:
采用所述加密密钥的哈希值、所述加密规则、所述密码和所述加密时间生成所述第三签名。
可选地,所述第二签名和所述第四签名基于对密码和用户名签名得到,所述第二签名参数信息包括所述加密密钥、所述加密规则、所述密码、用户名和所述加密时间,所述采用所述第二签名参数信息生成第四签名,包括:
采用所述加密密钥、所述加密规则、所述密码、所述用户名和所述加密时间生成所述第四签名。
可选地,所述采用所述加密密钥的哈希值、所述加密规则、所述密码和所述加密时间生成所述第三签名,包括:
按照所述加密规则从所述密码中提取第一字符串,以及从所述加密密钥的哈希值提取第二字符串;
对所述加密时间运算得到第三字符串;
按顺序拼接所述第一字符串、所述第二字符串和所述第三字符串,并根据拼接后的第一目标字符串生成所述第三签名。
可选地,所述采用所述加密密钥、所述加密规则、所述密码、所述用户名和所述加密时间生成所述第四签名,包括:
按照所述加密规则从所述用户名提取第四字符串,从所述密码提取第五字符串,以及从所述加密密钥提取第六字符串;
按顺序拼接所述第四字符串、所述第五字符串、所述第六字符串和所述第三字符串,并根据拼接后的第二目标字符串生成所述第四签名。
可选地,所述根据拼接后的第一目标字符串生成所述第三签名,包括:
从所述第一目标字符串选取若干个第一待加密字符,并基于所述加密规则从预设码表中查找对应于所述第一待加密字符的第一加密字符,采用所述第一加密字符生成所述第三签名。
可选地,所述根据拼接后的第二目标字符串生成所述第四签名,包括:
从所述第二目标字符串选取若干个第二待加密字符,并基于所述加密规则从所述预设码表中查找对应于所述第二待加密字符的第二加密字符,采用所述第二加密字符生成所述第四签名。
本发明实施例还公开了一种数据传输装置,所述装置包括:
获取模块,用于获取客户端的传输数据、针对所述传输数据的数据签名以及生成所述数据签名所采用的签名参数信息;所述数据签名包括第一签名和第二签名;所述签名参数信息包括生成所述第一签名的第一签名参数信息,以及生成所述第二签名的第二签名参数信息;
生成模块,用于采用所述第一签名参数信息生成第三签名,以及采用所述第二签名参数信息生成第四签名;其中,生成所述第三签名所采用的加密密钥信息与生成所述第四签名所采用的加密密钥信息不同;
确定模块,用于若所述第一签名与所述第三签名一致,且所述第二签名与所述第四签名一致,则确定两层签名验证成功,允许对所述传输数据进行数据处理操作。
可选地,所述第一签名和所述第三签名基于对密码签名得到,所述第一签名参数信息包括加密密钥、加密规则、密码和加密时间,所述生成模块,包括:
第一生成子模块,用于采用所述加密密钥的哈希值、所述加密规则、所述密码和所述加密时间生成所述第三签名。
可选地,所述第二签名和所述第四签名基于对密码和用户名签名得到,所述第二签名参数信息包括所述加密密钥、所述加密规则、所述密码、用户名和所述加密时间,所述生成模块,包括:
第二生成子模块,用于采用所述加密密钥、所述加密规则、所述密码、所述用户名和所述加密时间生成所述第四签名。
可选地,所述第一生成子模块,包括:
第一提取单元,用于按照所述加密规则从所述密码中提取第一字符串,以及从所述加密密钥的哈希值提取第二字符串;
运算单元,用于对所述加密时间运算得到第三字符串;
第一拼接及生成单元,用于按顺序拼接所述第一字符串、所述第二字符串和所述第三字符串,并根据拼接后的第一目标字符串生成所述第三签名。
可选地,所述第二生成子模块,包括:
第二提取单元,用于按照所述加密规则从所述用户名提取第四字符串,从所述密码提取第五字符串,以及从所述加密密钥提取第六字符串;
第二拼接及生成单元,用于按顺序拼接所述第四字符串、所述第五字符串、所述第六字符串和所述第三字符串,并根据拼接后的第二目标字符串生成所述第四签名。
可选地,所述第一拼接及生成单元,包括:
第一选取查找及生成子单元,用于从所述第一目标字符串选取若干个第一待加密字符,并基于所述加密规则从预设码表中查找对应于所述第一待加密字符的第一加密字符,采用所述第一加密字符生成所述第三签名。
可选地,所述第二拼接及生成单元,包括:
第二选取查找及生成子单元,用于从所述第二目标字符串选取若干个第二待加密字符,并基于所述加密规则从所述预设码表中查找对应于所述第二待加密字符的第二加密字符,采用所述第二加密字符生成所述第四签名。
本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述一种数据传输方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述一种数据传输方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,可以采用第一签名参数信息生成第三签名,以及采用第二签名参数信息生成第四签名,在验证第一签名与第三签名一致,以及第二签名与第四签名一致的情况下才可以允许对传输数据进行数据处理操作。通过采用上述方法,需要经过两层签名验证才能真正签名验证成功,大大提升了签名验证的安全性,且两层签名所采用的加密密钥信息不同,解决了现有签名算法中仅仅对传输数据相关参数生成单层签名,密钥被他人获得后容易被攻破的问题。
附图说明
图1是本发明实施例提供的一种数据传输方法的步骤流程图;
图2是本发明实施例提供的另一种数据传输方法的步骤流程图;
图3是本发明实施例的一种在客户端生成第一签名的流程示意图;
图4是本发明实施例的一种在客户端生成第二签名的流程示意图;
图5是本发明实施例的一种数据传输方法的流程示意图;
图6是本发明实施例提供的一种数据传输方法的应用场景示意图;
图7是本发明实施例提供的一种数据传输装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其它实施例,都属于本发明保护的范围。
常用的签名算法有MD5算法、SHA-1算法、SHA-256算法和慢哈希Bcrypt算法等,这些签名算法都是单层对传输数据的相关参数生成签名,密钥被他人获得后很大概率可以攻破该签名。因此,目前亟需解决单层加密签名安全性不高和如何防止密钥泄漏后签名被攻破的技术问题。
为了解决以上问题,本发明拟提供一种克服上述问题或者至少部分地解决上述问题的一种数据传输方法和相应的一种数据传输装置、一种电子设备,以及一种计算机可读存储介质。
本发明实施例的核心构思之一在于,可以采用第一签名参数信息生成第三签名,以及采用第二签名参数信息生成第四签名,在验证第一签名与第三签名一致,以及第二签名与第四签名一致的情况下才可以允许对传输数据进行数据处理操作。通过采用上述方法,需要经过两层签名验证才能真正签名验证成功,大大提升了签名验证的安全性,解决了现有签名算法中仅仅对传输数据相关参数生成单层签名,且两层签名所采用的加密密钥信息不同,密钥被他人获得后容易被攻破的问题。
参照图1,示出了本发明实施例提供的一种数据传输方法的步骤流程图,具体可以包括如下步骤:
步骤101,获取客户端的传输数据、针对传输数据的数据签名以及生成数据签名所采用的签名参数信息。
其中,数据签名包括第一签名和第二签名;签名参数信息包括生成第一签名所采用的第一签名参数信息,以及生成第二签名所采用的第二签名参数信息。
本申请实施例的一种数据传输方法可以应用于服务器,服务器与客户端之间可以进行数据传输。
在本发明实施例中,客户端可以将传输数据,针对该传输数据的数据签名,以及生成该数据签名采用的签名参数信息传输到服务器中。其中,该传输数据可以至少包括两个数据签名,分别为第一签名和第二签名。相应地,签名参数信息至少包括生成第一签名的第一签名参数信息,以及生成第二签名的第二签名参数信息。在客户端中采用第一签名参数信息生成第一签名,以及采用第二签名参数信息生成第二签名之后,再将第一签名、第二签名、第一签名参数信息、第二签名参数信息以及传输数据传输到服务器。
步骤102,采用第一签名参数信息生成第三签名,以及采用第二签名参数信息生成第四签名。
其中,生成第三签名所采用的签名生成方法与生成第四签名所采用的签名生成方法不同;生成第三签名所采用的加密密钥信息与生成第四签名所采用的加密密钥信息不同。在一种示例中,生成第三签名所采用的加密密钥信息可以为第一加密密钥,生成第四签名所采用的加密密钥信息可以为第二加密密钥,且第一加密密钥可以为第二加密密钥的哈希值。进一步地,第二加密密钥为公钥密钥。
可以采用第一签名参数信息按照生成第一签名的步骤生成签名,获得对应的第三签名;以及可以采用第二签名参数信息按照生成第二签名的步骤生成签名,获得对应的第四签名。
步骤103,若第一签名与第三签名一致,且第二签名与第四签名一致,则确定两层签名验证成功,允许对传输数据进行数据处理操作。
在本发明实施例中,如果第一签名与第三签名验证一致,而且第二签名与第四签名验证一致,则确定两层签名验证成功,可以允许对传输数据进行数据处理操作。其中,可以是先校验第一签名与第三签名是否一致,在校验一致的情况下再校验第二签名与第四签名是否一致。
综上,在本发明实施例中,可以采用第一签名参数信息生成第三签名,以及采用第二签名参数信息生成第四签名,在验证第一签名与第三签名一致,以及第二签名与第四签名一致的情况下才可以允许对传输数据进行数据处理操作。通过采用上述方法,需要经过两层签名验证才能真正签名验证成功,大大提升了签名验证的安全性,且两层签名所采用的加密密钥信息不同,解决了现有签名算法中仅仅对传输数据相关参数生成单层签名,密钥被他人获得后容易被攻破的问题。
参照图2,示出了本发明实施例提供的另一种数据传输方法的步骤流程图,具体可以包括如下步骤:
步骤201,获取客户端的传输数据、针对传输数据的数据签名以及生成数据签名所采用的签名参数信息。
其中,数据签名包括第一签名和第二签名;签名参数信息包括生成第一签名的第一签名参数信息,以及生成第二签名的第二签名参数信息。
在本发明实施例中,客户端针对传输数据采用第一签名参数信息生成第一签名,采用第二签名参数信息生成第二签名。因此可以从客户端中获取传输数据,针对该传输数据的第一签名和第二签名,以及对应的第一签名参数信息和第二签名参数信息。
在本实施例中,第一签名和第三签名基于对密码签名得到,第一签名参数信息包括加密密钥、加密规则、密码和加密时间。
步骤202,采用加密密钥的哈希值、加密规则、密码和加密时间生成第三签名。
加密密钥是生成签名方和验证签名方双方定义的加密密钥,加密密钥可以为公钥密钥。加密规则可以包括加密数组。密码由生成签名方提供。加密时间为生成签名方提供的生成签名的系统时间。
在本发明实施例中,第一签名和第三签名基于对密码签名得到,对于第一签名和第三签名,可以基于加密密钥的哈希值、加密规则、密码和加密时间生成。
在本发明一种可选的实施例中,步骤202中采用加密密钥的哈希值、加密规则、密码和加密时间生成第三签名,具体可以包括如下子步骤:
子步骤S11,按照加密规则从密码中提取第一字符串,以及从加密密钥的哈希值提取第二字符串。
子步骤S12,对加密时间运算得到第三字符串。
子步骤S13,按顺序拼接第一字符串、第二字符串和第三字符串,并根据拼接后的第一目标字符串生成第三签名。
在本发明实施例中,按照加密规则分别从密码、加密密钥提取第一字符串和第二字符串,对加密时间运算得到第三字符串,按顺序拼接各个字符串得到可用于生成第三签名的第一目标字符串。
在本发明一种可选的实施例中,子步骤S13中根据拼接后的第一目标字符串生成第三签名,具体可以包括如下子步骤:
从第一目标字符串选取若干个第一待加密字符,并基于加密规则从预设码表中查找对应于第一待加密字符的第一加密字符,采用第一加密字符生成第三签名。
在本发明实施例中,可以从第一目标字符串中挑选若干个第一待加密字符,将其转换为对应的第一加密字符进行加密保护,之后采用第一加密字符生成第三签名。
第二签名和第四签名基于对密码和用户名签名得到,第二签名参数信息包括加密密钥、加密规则、密码、用户名和加密时间。
步骤203,采用加密密钥、加密规则、密码、用户名和加密时间生成第四签名。
用户名由生成签名方提供。
在本发明实施例中,第二签名和第四签名基于对密码和用户名签名得到,对于第二签名和第四签名,可以基于加密密钥、加密规则、密码、用户名和加密时间生成。
生成第一签名/第三签名所采用的签名生成方法与生成第二签名/第四签名所采用的签名生成方法不同;生成第一签名/第三签名使用的加密密钥信息是加密密钥的哈希值,而生成第二签名/第四签名使用的加密密钥信息是原始的加密密钥,通过这种设计可以使得即使密钥泄漏,签名也不容易被破解,分段式签名大大提升了签名验证的安全性。
在本发明一种可选的实施例中,步骤203中采用加密密钥、加密规则、密码、用户名和加密时间生成第四签名,具体可以包括如下子步骤:
子步骤S21,按照加密规则从用户名提取第四字符串,从密码提取第五字符串,以及从加密密钥提取第六字符串。
子步骤S22,按顺序拼接第四字符串、第五字符串、第六字符串和第三字符串,并根据拼接后的第二目标字符串生成第四签名。
在本发明实施例中,按照加密规则分别从用户名、密码、加密密钥提取第四字符串、第五字符串和第六字符串,并获取在先对加密时间运算得到的第三字符串,按顺序拼接各个字符串得到可用于生成第四签名的第二目标字符串。
在本发明一种可选的实施例中,子步骤S22中根据拼接后的第二目标字符串生成第四签名,具体可以包括如下子步骤:
从第二目标字符串选取若干个第二待加密字符,并基于加密规则从预设码表中查找对应于第二待加密字符的第二加密字符,采用第二加密字符生成第四签名。
在本发明实施例中,可以从第二目标字符串中挑选若干个第二待加密字符,将其转换为对应的第二加密字符进行加密保护,之后采用第二加密字符生成第四签名。
步骤204,若第一签名与第三签名一致,且第二签名与第四签名一致,则确定两层签名验证成功,允许对传输数据进行数据处理操作。
采用第一签名参数信息生成第一签名的步骤与采用第一签名参数信息生成第三签名的步骤相同,采用第二签名参数信息生成第二签名的步骤与采用第二签名参数信息生成第四签名的步骤相同,如果生成的第三签名与第一签名一致,且生成的第四签名与第二签名一致,则可以认为传输数据在传输过程中没有被篡改,可以对传输数据进行后续的数据处理操作。
为了使本领域技术人员更好地理解本发明实施例,下面通过一个例子加以说明:
参照图3所示,为本发明实施例的一种在客户端生成第一签名的流程示意图,具体流程包括:
1、获取生成第一签名所需数据:加密密钥的哈希值、加密规则、密码、加密时间。其中,加密规则中的加密数组可以包含四个元素。
例如:
Ytb9u4KpVXaXZhB7awmY7paoLYN0ie3LnjT1(加密密钥);
[4,1,6,2](加密数组);
U.k@rLd+rYce#jnd(用户提供的密码);
1658217304335(加密时间,提供的可以是毫秒级别的时间)。
2、将密码和加密密钥的哈希值根据加密规则提取第一字符串和第二字符串,例如加密数组中的第一个元素为4,则提取密码中的前4个字符,得到U.k@;加密密钥的哈希值为25615523422,加密数组中的第三个元素为6,则从加密密钥的哈希值中提取前6个字符,得到256155。
3、基于加密时间进行取余运算得到第三字符串,例如加密时间对10000000取余,得到7304335。
4、按顺序拼接第一字符串、第二字符串和第三字符串,得到第一目标字符串为:U.k@2561557304335。
5、从第一目标字符串中选取若干个第一待加密字符,并基于加密规则从预设码表中查找对应于第一待加密字符的第一加密字符,采用第一加密字符生成第一签名。码表中的字符和其对应的二进制相互映射。这张表中规定了字符和二进制的映射关系。计算机存储字符时根据字符查询码表,然后存储对应的二进制。计算机取出字符时根据二进制查询码表,然后转换成对应的字符显示。例如可以选取第一目标字符串中的前4个字符,分别确定这4个字符在码表中的码号,然后将码号分别对应与加密数组中的元素相加,将获得的新码号对应的字符作为原始字符的加密字符,即第1个字符U对应码号85,将85与加密数组中的第一个元素相加得到新码号85+4=89,对应的字符为Y,以此类推,原来4个字符的加密字符为Y/qB,最终处理结果如下:
原始第一目标字符串数组:[U,.,k,@,2,5,6,1,5,5,7,3,0,4,3,3,5];
处理后第一目标字符串数组:[Y,/,q,B,2,5,6,1,5,5,7,3,0,4,3,3,5];
将处理后的第一目标字符串数组中的前10个元素组成最终字符串Y/qB256155,即为生成的第一签名。
参照图4所示,为本发明实施例的一种在客户端生成第二签名的流程示意图,具体流程包括:
1、获取生成第二签名所需数据:加密密钥、加密规则、密码、用户名、加密时间。其中生成第二签名所采用的加密密钥、加密规则中的加密数组、密码和加密时间与生成第一签名所采用的是相同的。
例如:
Ytb9u4KpVXaXZhB7awmY7paoLYN0ie3LnjT1(加密密钥);
[4,1,6,2](加密数组);
KmmVCscMgd7X5H(用户名);
U.k@rLd+rYce#jnd(用户提供的密码);
1658217304335(加密时间,毫秒级别)。
2、将用户名、密码和加密密钥根据加密规则提取第四字符串、第五字符串和第六字符串,例如根据加密规则提取用户名前4个字符(KmmV)、密码前1个字符(U)、加密密钥前6个字符(Ytb9u4)。
3、基于加密时间进行取余运算得到第三字符串,处理后的第三字符串为7304335。
4、按顺序拼接第四字符串、第五字符串、第六字符串和第三字符串,得到第二目标字符串为:KmmVUYtb9u47304335。
5、从第二目标字符串中选取若干个第二待加密字符,并基于加密规则从预设码表中查找对应于第二待加密字符的第二加密字符,采用第二加密字符生成第二签名。例如可以选取第二目标字符串中的前4个字符,分别确定这4个字符在码表中的码号,然后将码号分别对应与加密数组中的元素相加,将获得的新码号对应的字符作为原始字符的加密字符,即第1个字符K对应的加密字符为O,以此类推,原来4个字符的加密字符为OnsX,处理结果如下:
原始第二目标字符串数组:[K,m,m,V,U,Y,t,b,9,u,4,7,3,0,4,3,3,5];
处理后第二目标字符串数组:[O,n,s,X,U,Y,t,b,9,u,4,7,3,0,4,3,3,5];
将处理后的第二目标字符串数组中的前10个元素组成最终字符串OnsXUYtb9u,即为生成的第二签名。
参照图5所示,为本发明实施例的一种数据传输方法的流程示意图,应用于服务器,具体流程包括:
1、获取客户端传递的传输数据,针对该传输数据的第一签名,以及生成第一签名所采用的加密密钥、加密规则、密码和加密时间。
2、采用加密密钥的哈希值、加密规则、密码和加密时间按照原来生成第一签名的流程生成第三签名。
3、比对第一签名和第三签名。
4、如果第一签名和第三签名比对一致,则获取针对传输数据的第二签名,以及生成该第二签名所采用的用户名;如果第一签名和第三签名比对不一致,则直接结束该流程,不允许对客户端的传输数据进行相应的数据处理操作。
5、采用加密密钥、加密规则、密码、用户名和加密时间按照原来生成第二签名的流程生成第四签名。
6、比对第二签名和第四签名。
7、如果第二签名和第四签名比对一致,则签名验证成功,可以对客户端的传输数据进行相应的数据处理操作;如果第二签名和第四签名比对不一致,则直接结束该流程,不允许对客户端的传输数据进行相应的数据处理操作。
参照图6所示,为本发明实施例提供的一种数据传输方法的应用场景示意图。本发明提供的数据传输方法是基于AKA(Authentication and Key Agreement,第三代移动通讯网络的认证与密钥协商协议)认证机制的,可以应用于HTTP(Hyper Text TransferProtocol,超文本传输协议)请求校验身份以及用户操作系统校验身份的场景。在具体实施例中,服务器对客户端传递的传输数据的进行数据处理操作之前,需要先针对该传输数据进行身份校验,保证数据传输过程中的机密性。服务器需经过两层签名验证,第一层为密码签名验证,第二层为用户名密码签名验证,密码签名验证通过后需继续验证用户名密码签名。其中,生成密码签名使用的是加密密钥的hashCode(哈希码),而生成用户名密码签名使用的是原始加密密钥,通过这种设计可以使得即使加密密钥泄漏,该签名也难以被破解,分段式签名大大提升了签名验证的安全性。客户端可以是任何的电子设备,例如,智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。客户端还可以是能够在上述设备中搭载的各种应用软件。服务器还可以是服务器集群,或者云计算资源池的一部分。
综上,在本发明实施例中,可以采用第一签名参数信息生成第三签名,以及采用第二签名参数信息生成第四签名,在验证第一签名与第三签名一致,以及第二签名与第四签名一致的情况下才可以允许对传输数据进行数据处理操作。通过采用上述方法,需要经过两层签名验证才能真正签名验证成功,大大提升了签名验证的安全性,且两层签名所采用的加密密钥信息不同,解决了现有签名算法中仅仅对传输数据相关参数生成单层签名,密钥被他人获得后容易被攻破的问题。
在本发明实施例中,生成密码签名和生成用户名密码签名两者所采用的加密密钥信息不一致,生成密码签名使用的是加密密钥的hashCode,而生成用户名密码签名使用的是原始的加密密钥,分段式签名大大提升了签名验证的安全性,提升了密钥泄漏后的抗攻击能力。本发明密码签名通过后需继续验证用户名密码签名,在两层验证均通过的情况下才能对传输数据进行相应的数据处理操作。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明实施例提供的一种数据传输装置的结构框图,具体可以包括如下模块:
获取模块701,用于获取客户端的传输数据、针对所述传输数据的数据签名以及生成所述数据签名所采用的签名参数信息;所述数据签名包括第一签名和第二签名;所述签名参数信息包括生成所述第一签名的第一签名参数信息,以及生成所述第二签名的第二签名参数信息;
生成模块702,用于采用所述第一签名参数信息生成第三签名,以及采用所述第二签名参数信息生成第四签名;其中,生成所述第三签名所采用的加密密钥信息与生成所述第四签名所采用的加密密钥信息不同;
确定模块703,用于若所述第一签名与所述第三签名一致,且所述第二签名与所述第四签名一致,则确定两层签名验证成功,允许对所述传输数据进行数据处理操作。
在本发明实施例中,所述第一签名和所述第三签名基于对密码签名得到,所述第一签名参数信息包括加密密钥、加密规则、密码和加密时间,所述生成模块,包括:
第一生成子模块,用于采用所述加密密钥的哈希值、所述加密规则、所述密码和所述加密时间生成所述第三签名。
在本发明实施例中,所述第二签名和所述第四签名基于对密码和用户名签名得到,所述第二签名参数信息包括所述加密密钥、所述加密规则、所述密码、用户名和所述加密时间,所述生成模块,包括:
第二生成子模块,用于采用所述加密密钥、所述加密规则、所述密码、所述用户名和所述加密时间生成所述第四签名。
在本发明实施例中,所述第一生成子模块,包括:
第一提取单元,用于按照所述加密规则从所述密码中提取第一字符串,以及从所述加密密钥的哈希值提取第二字符串;
运算单元,用于对所述加密时间运算得到第三字符串;
第一拼接及生成单元,用于按顺序拼接所述第一字符串、所述第二字符串和所述第三字符串,并根据拼接后的第一目标字符串生成所述第三签名。
在本发明实施例中,所述第二生成子模块,包括:
第二提取单元,用于按照所述加密规则从所述用户名提取第四字符串,从所述密码提取第五字符串,以及从所述加密密钥提取第六字符串;
第二拼接及生成单元,用于按顺序拼接所述第四字符串、所述第五字符串、所述第六字符串和所述第三字符串,并根据拼接后的第二目标字符串生成所述第四签名。
在本发明实施例中,所述第一拼接及生成单元,包括:
第一选取查找及生成子单元,用于从所述第一目标字符串选取若干个第一待加密字符,并基于所述加密规则从预设码表中查找对应于所述第一待加密字符的第一加密字符,采用所述第一加密字符生成所述第三签名。
在本发明实施例中,所述第二拼接及生成单元,包括:
第二选取查找及生成子单元,用于从所述第二目标字符串选取若干个第二待加密字符,并基于所述加密规则从所述预设码表中查找对应于所述第二待加密字符的第二加密字符,采用所述第二加密字符生成所述第四签名。
综上,在本发明实施例中,可以采用第一签名参数信息生成第三签名,以及采用第二签名参数信息生成第四签名,在验证第一签名与第三签名一致,以及第二签名与第四签名一致的情况下才可以允许对传输数据进行数据处理操作。通过采用上述方法,需要经过两层签名验证才能真正签名验证成功,大大提升了签名验证的安全性,且两层签名所采用的加密密钥信息不同,解决了现有签名算法中仅仅对传输数据相关参数生成单层签名,密钥被他人获得后容易被攻破的问题。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述一种数据传输方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述一种数据传输方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理终端设备上,使得在计算机或其它可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种数据传输方法和一种数据传输装置、一种电子设备和一种计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据传输方法,其特征在于,所述方法包括:
获取客户端的传输数据、针对所述传输数据的数据签名以及生成所述数据签名所采用的签名参数信息;所述数据签名包括第一签名和第二签名;所述签名参数信息包括生成所述第一签名的第一签名参数信息,以及生成所述第二签名的第二签名参数信息;
采用所述第一签名参数信息生成第三签名,以及采用所述第二签名参数信息生成第四签名;其中,生成所述第三签名所采用的加密密钥信息与生成所述第四签名所采用的加密密钥信息不同;
若所述第一签名与所述第三签名一致,且所述第二签名与所述第四签名一致,则确定两层签名验证成功,允许对所述传输数据进行数据处理操作。
2.根据权利要求1所述的方法,其特征在于,所述第一签名和所述第三签名基于对密码签名得到,所述第一签名参数信息包括加密密钥、加密规则、密码和加密时间,所述采用所述第一签名参数信息生成第三签名,包括:
采用所述加密密钥的哈希值、所述加密规则、所述密码和所述加密时间生成所述第三签名。
3.根据权利要求2所述的方法,其特征在于,所述第二签名和所述第四签名基于对密码和用户名签名得到,所述第二签名参数信息包括所述加密密钥、所述加密规则、所述密码、用户名和所述加密时间,所述采用所述第二签名参数信息生成第四签名,包括:
采用所述加密密钥、所述加密规则、所述密码、所述用户名和所述加密时间生成所述第四签名。
4.根据权利要求3所述的方法,其特征在于,所述采用所述加密密钥的哈希值、所述加密规则、所述密码和所述加密时间生成所述第三签名,包括:
按照所述加密规则从所述密码中提取第一字符串,以及从所述加密密钥的哈希值提取第二字符串;
对所述加密时间运算得到第三字符串;
按顺序拼接所述第一字符串、所述第二字符串和所述第三字符串,并根据拼接后的第一目标字符串生成所述第三签名。
5.根据权利要求4所述的方法,其特征在于,所述采用所述加密密钥、所述加密规则、所述密码、所述用户名和所述加密时间生成所述第四签名,包括:
按照所述加密规则从所述用户名提取第四字符串,从所述密码提取第五字符串,以及从所述加密密钥提取第六字符串;
按顺序拼接所述第四字符串、所述第五字符串、所述第六字符串和所述第三字符串,并根据拼接后的第二目标字符串生成所述第四签名。
6.根据权利要求5所述的方法,其特征在于,所述根据拼接后的第一目标字符串生成所述第三签名,包括:
从所述第一目标字符串选取若干个第一待加密字符,并基于所述加密规则从预设码表中查找对应于所述第一待加密字符的第一加密字符,采用所述第一加密字符生成所述第三签名。
7.根据权利要求6所述的方法,其特征在于,所述根据拼接后的第二目标字符串生成所述第四签名,包括:
从所述第二目标字符串选取若干个第二待加密字符,并基于所述加密规则从所述预设码表中查找对应于所述第二待加密字符的第二加密字符,采用所述第二加密字符生成所述第四签名。
8.一种数据传输装置,其特征在于,所述装置包括:
获取模块,用于获取客户端的传输数据、针对所述传输数据的数据签名以及生成所述数据签名所采用的签名参数信息;所述数据签名包括第一签名和第二签名;所述签名参数信息包括生成所述第一签名的第一签名参数信息,以及生成所述第二签名的第二签名参数信息;
生成模块,用于采用所述第一签名参数信息生成第三签名,以及采用所述第二签名参数信息生成第四签名;其中,生成所述第三签名所采用的加密密钥信息与生成所述第四签名所采用的加密密钥信息不同;
确定模块,用于若所述第一签名与所述第三签名一致,且所述第二签名与所述第四签名一致,则确定两层签名验证成功,允许对所述传输数据进行数据处理操作。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-7中任一项所述一种数据传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述一种数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124838.2A CN116094718A (zh) | 2022-09-15 | 2022-09-15 | 一种数据传输方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211124838.2A CN116094718A (zh) | 2022-09-15 | 2022-09-15 | 一种数据传输方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116094718A true CN116094718A (zh) | 2023-05-09 |
Family
ID=86212570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211124838.2A Pending CN116094718A (zh) | 2022-09-15 | 2022-09-15 | 一种数据传输方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116094718A (zh) |
-
2022
- 2022-09-15 CN CN202211124838.2A patent/CN116094718A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020237868A1 (zh) | 数据传输方法、电子设备、服务器及存储介质 | |
EP3413507B1 (en) | Electronic documents certification | |
US10320765B2 (en) | Method and system for securing communication | |
CN104065652B (zh) | 一种身份验证方法、装置、系统及相关设备 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN111177801B (zh) | 电子文档的签章方法、装置、存储介质和电子设备 | |
US20200145389A1 (en) | Controlling Access to Data | |
JP2010205258A (ja) | 検索方法、検索装置、索引生成方法、索引生成装置 | |
CN111835526B (zh) | 一种生成匿名凭证的方法及系统 | |
US9641328B1 (en) | Generation of public-private key pairs | |
CN115473655B (zh) | 接入网络的终端认证方法、装置及存储介质 | |
KR101217491B1 (ko) | 공개키 기반의 키워드 검색 방법 | |
CN112565156B (zh) | 信息注册方法、装置和系统 | |
CN115361198A (zh) | 解密方法、加密方法、装置、计算机设备和存储介质 | |
CN108512657B (zh) | 一种密码生成方法及装置 | |
JP5970193B2 (ja) | 検索システム、検索方法および検索プログラム | |
JP5799635B2 (ja) | 暗号データ検索システム、装置、方法及びプログラム | |
CN110830252B (zh) | 数据加密的方法、装置、设备和存储介质 | |
CN116094718A (zh) | 一种数据传输方法、装置、电子设备和存储介质 | |
CN114117388A (zh) | 设备注册方法、设备注册装置、电子设备以及存储介质 | |
CN113742671A (zh) | 在线协同信息处理方法、系统、电子装置和存储介质 | |
CN115114648A (zh) | 一种数据处理方法、装置及电子设备 | |
CN114567476B (zh) | 一种数据安全防护方法、装置、电子设备及介质 | |
CN116112167B (zh) | 密钥管理系统、方法及装置 | |
CN112769560B (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 |